also, does it consistantly crash at a certain time - or more importantly, under certain conditions - OR does it consistently crash a certain amount of time from its last restart?
sounds to me as if junk is building up and then at some point it hits a breaking point and dies.
programs that don't do memory allocation correctly usually have this trait - if you are running only popularly used and stable servers (Apache, mySql, etc), then it isn't likely the case there - and if I recall correctly most of the stuff you did for this guy is PHP stuff - which is really really not likely to kill the machine directly...
if it is colocated somewhere that isn't particularly good at what it does, it could be that as a shift changes, someone changes the temperature and around 3am is when problems arise simply due to temp levels tend to hit critical points around there...
or some dude that is on that shift smokes and leaves a door open out to the humid night and it is near your cage in the colocation...
any number of things could lead to it - but I would agree that unless you are writing C/C++ stuff, it isn't likely your code.
if it is Java, then it would depend on many things - it technically should prevent memory leaks - but some of the servers seem to manage a way around this somehow...