Here's a quick fix that actually works:

1: When your computer is working, boot into windows, and make a copy of the windows directory. Make sure to put it on the same drive letter, and give it a name 8 or less characters long. Bold print is a dos command (sorry).
XCOPY32 /E windows winold, or drag and drop in explorer

2: When something breaks, boot into 'safe mode command prompt only'
Win95: press F8 when it says 'Starting windows'. Win98: Hold CTRL when it beeps, but before it boots. Select from the menu.

3: Rename the windows directories so that the computer boots off the copy:
rename windows win000
rename winold windows

4: Reboot, and if the problem has gone away, repeat step 1.

If the problem remains, it's either a hardware fault, or damage to the root or program files directory. Remember to back up the windows directory often (assuming it's working).

As you techies may have gathered, doing this makes a known-good backup of the current windows install, ready to swap back in if realplayer, Internet explorer, etc. hose the current one. Why copy it in windows, and then rename in dos? Files copied in DOS lose their long file names...