I noticed some errors a few weeks ago and was unable to run chkdsk c: as it would not blue screen, but reboot at one point in the process. This was running chkdsk in windows with no /f or /r parameter.
I was able to copy my data from the drive (Drive C Boot) to a USB HD and last night booted with my Windows XP Disk, went into recovery mode - command line and executed fixmbr.
It warned me that my mbr was non standard and fixing it might leave it in an unusable condition. I ran it anyway.
I then ran chkdsk /p in command line mode and it has been running almost 24 hours and still says it is 50% completed.
It also wrote to the screen:
CHKDSK is performing additional checking or recovery ...
Any suggestions? My next step is to reinstall XP and reformat the drive.