User Error is BY FAR the most common cause of leaks!
I've see lanyards caught between housing halves and bags of silica gel amongst other things, but in my (personal) experience sand and (cat) hairs cause little problem.
The rinse tank is a source of leaks too especially when a load of gear is dumped in them - I've seen a latch knocked open in a rinse tank.
"O" rings REQUIRE both cleaning and lubrication in order to work efficiently. If this is carried out correctly and the 'O' ring is undamaged then it will seal as intended. In my experience, assuming that a user serviceable 'O' ring is ok can finally lead to problems. If an 'O' ring is disturbed then ideally it should be removed, cleaned, checked and lubricated and the groove cleaned and checked although between dives this may not be desirable depending upon dive situation.
I'd also say that there are two sorts of leak.
1. Weeps - slow ingress of water through a gland indicating a problem with the seal and the need for immediate servicing - these can sometimes self seal at depth as pressure on the seal increases and seats it.
2. Catastrophic fast pouring in of water - where something is very wrong and a major seal isn't working or a control has failed spectacularly.