I've noticed this and I do think it's the channel providers problem. Last night, I was watching something on ID (FIOS 623) and the clock on the STB clicked over to 12:00 (midnight) yet the program was still doing it's closing and showing the credits. About 20 seconds later, the next show started.
If the DVR is simply using the clock on the STB to determine start and end times (and I'm sure that it is), then the provider is running over the timeslot. I see this a lot on AMC (FIOS 731).
Also, something else I noticed is that the "Standard Definition" and "High Definition" channels for the same provide do not "line up", the HD channel is several seconds behind the SD channel. You can verify this by switching back and forth using the "last" button. So, it's possible that, if you are recording the HD channel, that this delay is why the program "runs long by several seconds".
Now it could also be that the channel provider and FIOS disagree on the time-of-day, I doubt they are synchronized to military precision :-)
Hope this help a little