If the drive is by Western Digital, double check the SMART data -- they tend to cheat a little there.

Otherwise, could simply be a loose/dodgy cabling connection. I have one SATA port on my server with troubles like that from time to time, and I "fixed" a drive by simply moving it to another unused port.