Deadlocks are mostly caused by poorly written queries and inadequate indexing, not hardware, recovery models, fragmentation or memory stats (though they can have an influence, except for recovery model that is)
Switch traceflag 1222 on. That will result in a deadlock graph been written to the error log every time a deadlock occurs. Post the result of that graph here.
DBCC TRACEON(1222,-1)
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability