The implicit locks are typically caused by poor architecture, for example:
User A ----------------- User B
=========================================
TableA.MODIFY ----------
CONFIRM (something) ----
------------------------ TableA.GET(
User B will get that locking problem, until the process at the user A will end, or a COMMIT is issued. there may be other cases, including nested loops, basically anything where a uncommitted transaction is left hanging for a long time. Hope that helps