It's only when it is an Instead of Trigger. Here is an example of an after(for) trigger where scope_identity doesn't work in the trigger but does work in the scope...
I've never seen scope_identity fail but if you are using an Instead of Insert Trigger scope_identity is null outside of the trigger itself, which I find strange and annoying. Which...