Se supone que SQL Server resuelve los deadlock sencillos, pero si no lo logra se requere de la intervención manual del admor.
Ya que esta el problema lo puedes ver con
sp_lock, y para matar alguno de los problemáticos puedes usar
sp_kill <pid_bloqueado>
Para evitar esto se supone que debes usar transacciones, y procurar que duren lo menos posible, esto es, no mezclar entradas del usuario dentro de la transacción.
Revisa estos temas en los Books Online (la ayuda):
SET TRANSACTION ISOLATION LEVEL
SET DEADLOCK_PRIORITY
Minimizing Deadlocks
Espero que te ayude