The two things I would do here are-
Install the smartmontools package to get smartctl. Read the man file and use this tool to run a extended offline test of hda....Offline tests don't actually take the drive offline (they can just make it really slow) so you can do them when it is mounted...I strongly advise you read the man file first...but essentially the syntax is as follows.
smartctl -t long /dev/hda
Which will start the test and give an approximation of when it will finish...once that point has passed.
smartctl -a /dev/hda
to get a full drive status and test results...if you can't make sense of them then post the results here.
replace the IDE cable, be sure to get one of the ultra DMA capable 80 conductor types as the old style 40 conductor type would cause similar errors to what you are seeing here....this won't effect the results of the test above because the smart test is performed by the drive firmware not the PC.
IDE cables can be amazingly fickle....I have had physically perfect looking cables cause me no end of random disk problems.
The only other things I can think of you checking is that your PSU is up to the job of running both drives when they are busy.