The scenario:
 
You're a happy windows user that run Windows 2000 or XP. Got a few applications installed from major vendors like Micrsoft, Adobe, Macromedia and Symantec. Not too many freeware quick hacks. The basic setup. And so one day out of the blue, it happens. You're working as usual and the computer freezes up. So you do the monkey manouver and bring up the Task Manager.

There you find 99% idle time, no hung apps. No unusual memory usage. Not too much kernel time. No disk activity.

So you kill explorer.exe and restarts it. And maybe that does the trick. Or you have to reboot. And the computer runs again. And suddenly, the problem is back.

At this point, the regular user reinstalls windows.
I think most of us have experienced this at some point or another. But how can it really be solved?
How do you really find out WHAT is wrong, and WHY the computer just hangs there idle? How do you find out what explorer.exe (or other application) is waiting for?

Maybe the smart thing is to reinstall. But I hate to lose. I know about regmon, filemon and the performance monitor. But how do I look "under the hood" of a production system and find out what component, driver, < insert here > that causes the problem when it doesn't result in any load? When it just goes into wait without generating any special activity?

I know this may not be the best forum to ask this question. But I've asked alot of my developer buddies and they all go I don't know.

So how would YOU go about trying to diagnose such a system? What are your best tips?

/Lars.