I don't have a very good answer for you but I can tell you that using @@IDENTITY, especially if triggers come into play, is a form of "Death by SQL". Use SCOPE_IDENTITY() instead. See Books Online for why.
--Jeff Moden
Change is inevitable... Change for the better is not.