With software it could be anything these days. You may want to do a clean install. I have been rather lucky in that dept. I have been able to abuse my Vista install on two separate machines and only one clean install in four years (thanks Seagate

). But it only takes once on a bloated drive to bugger things up beyond recognition.
Sadly, MS's convoluted OS has some pretty layman unfriendly and cryptic codes that are virtually useless for the end user and why I usually recommend a clean install rather than trying to trouble shoot after days of trying to figure it out it's just not worth it imo.
That said, if it's the hardware, it may be the drive controller if it's complaining about errors on the drive but a scan shows no bad sectors. I'd reinstall the OS first and see if it still bitches about the drive.