With the Zat, there are three clock options:
"Set by Time Zone," which fails from bad DST data on PSIP;
"Off," which lets you set the clock time manually - presumably this is the one that drifts?;
"User Defined," which is preset to 00:00 GMT, and requires you to choose the correct GMT offset. This is the one I use, I'm set for -07:00 GMT. When DST comes in/out, I have to adjust the offset, and then it keeps perfect time.
ETA: but looking again, I do see a couple stations have different time. So either I have been very lucky, or internally it uses something other than what it displays as time. I only record in prime time, and it has been perfect. Or maybe the stations fix their own clock drift in time for prime time viewing.