There are some strange things in the output of your disk. To start with,
Attribute 9 has:
9 Power_On_Hours 0x0032 247 247 000 Old_age -
whereas you've had ATA errors reported about 800 hours after power on, and
a self-test reported around 2000 hours.
Could you please do
smartctl -t short /dev/hda
wait a few minutes, then
smartctl -a /dev/hda
and send the output again? I'd like to see what the timestamps say.
Note: if you could try this with your existing version 5.1-10 and then
download (from CVS) 5.1-11 and repeat it with that, I'd be grateful.