This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
SQL Server doesn't support his construct. But the question is still valid if you are using explicit locking hints. Are you?
In SQL server you can track why deadlock are occurring with the profiling tool. If you run your application and trace deadlock events with that you should get a picture of what sort of transactions are causing the deadlocks. Alternatively, if you can't use the profiling tool you can turn on trace logging for deadlock with dbcc. You could start by reading this.
You need to find out what the profiling tool suggests is the cause of the deadlocks - this is not something we can know. There are common patterns of behaviour that can increase the likelihood of deadlock, but rather than go through these all I would start by using the tools SQL Server supplies to get more information.