You should test the HD with the HD manufacturer's diagnostic utility, some of them can do some basic repairs, and after that try running chkdsk /r again. If the tool tells you to replace the HD, well, that's what you'll have to do...
You'll find those tools on the UBCD:
http://ultimatebootcd.com