one last thing you can try (i doubt this is the problem, but it can't hurt): windows' system file checker. open a command prompt (start>run then type cmd) and type
sfc /scannow (make sure to include the space after sfc)
You will probably be asked to insert your windows cd, so have that at hand. This will check all your system files and make sure they haven't been changed or corrupted or are missing.
And if that doesn't work, it's time to make a trip to your local pc repair shop and get them to check it out. If it is in fact your hard drive, then yes, it would mean replacing your C drive. But to find out which piece of hardware is causing the problems they'd have to have a look at your pc first - so don't just go out and buy a new one..