Okay, if we're talking PURELY hypothetical (and we'd have to be since Windows doesn't just crap out for no reason), then what I think you're looking for is to actually scan your individual processes to see what they're doing and what they're interacting with.

So, get yourself a copy of Dependency Walker (depends.exe), kill off Explorer, and start it from within Dependency Walker; and just leave it. It'll map out exactly what explorer is doing, what DLL calls it's passing, etc. You can have it automatically log (I think), until the error is reproduced. Keep doing this for each process (svchost, etc) until you find the problem.