Diagnosing and solving a problem on Linux usually consists of googling the error message you get, and applying the fix. Not so with Windows.
The Microsoft troubleshooting practice for this problem is something like the following:
Try safe mode.
What? That didn’t work? Oh, in that case, we invite you to drill down through roughly 350 links until you find a completely useless MSDN page that pretends to be about your problem, but is really about this other problem over here.
Sure, you could Google this, but then you get hundreds of links to people who have EXACTLY the same problem as you, only unlike Linux, no one can actually diagnose the problem because we’ve made that impossible.
UNLESS you’d like to hook up a serial cable to your spare computer, and debug the kernel and whatever stack trace you get.
What? You’re not a kernel developer?
What? You don’t have another computer?
What? You don’t have a null serial cable?
Never mind, just reinstall Windows, and kiss all your installed programs goodbye. That’s what everyone does in this case, even though it’s just a futzed driver or service.
Oh wait — did we mention when you reinstall, you can’t do it without blowing away all your user data files? Oops, our bad. Glad you bought that extra USB hard disk now, aren’t you?
What? You don’t have an extra USB hard disk?
By the way, remember to buy your Vista upgrade right away!
Swear to God, this is routine in the Windows world. No wonder I can fix a Linux machine in 5 minutes, but I can't fix a Windows machine in less than 45 minutes (assuming I'm allowed to wipe the disk without backing up, in preparation for the reinstallation procedure).