“Transaction was deadlocked on lock resources with another process and has been chosen as the deadlock victim.”
Oh noes.
This type of error can be solved by taking a database performance hit using:
xlock, rowlock, readpast
Or by guarding the database access code with a critical zone, e.g. in C#:
lock(someLockObject) { ... }
Of course refactoring both code and the database structure is an option, albeit it requires much more work.
Either way, an error like this tend to sneak up on you when you least expect it, and it packs enough punch to ruin a bit of your developer day.