Run Memtest via a bootable CD to test your memory. Memory problems can effect a hard drive test so I prefer to do this first. No memory errors are acceptable. If errors, retest with one memory stick at a time. Replace as needed.
Run hard drive test via bootable CD. Use the hard drive test utility available from your hard drive's manufacturer or simple use Seatools from Seagate since it works on other hard drives as well. Small drive errors may be repairable by this software, but big errors or many small ones will require drive replacement.
Certainly test by replacing the signal cable to the hard drive and trying a different power plug from your power supply.
A new drive may very well be the answer, but make sure first.
You have to be a little bit crazy to keep you from going insane.