When you wrote zeros to the drive, all the bad sectors were marked off. They no longer will be used for data. That’s why this time around, when you ran the test, there were no bad sectors. Now, how many bad sectors did you find on the drive, originally? If it was a lot, I’d replace the drive, no matter what.
Had a somewhat similar experience. I have a WD7500AACS (750GB Caviar Green) that would throw a new CRC data error every month or so. Not enough for a warranty return, but annoying because every time it happened I would lose a file. These sectors were added to the pending reallocation count(from memory). Happened about 10 times in all I think. I ran CHKDSK /R a number of times.
Anyway it was enough of a problem that I couldn’t rely on it any more so I went out and bought a new (bigger!) drive and when everything was snug on the new, I reformatted the old one and made it a backup drive.
Since doing the full reformat, it has been absolutely perfect and has not thrown a single error. Maybe something similar is happening with your drive.
P.S. From these forums, I found a great program “Hard Disk Sentinel” (hdsentinel.com) which gives brilliant view into the S.M.A.R.T data.