A quick primer:
American television was originally broadcast at 30 frames per second. In order to accommodate color information without losing backward-compatibility with B&W televisions, the framerate was slowed by a factor of 1000/1001, to approximately 29.97 FPS.
29.97 footage was still labeled as 30 FPS; however, the difference in framerate caused the timecode to be off by a minute-and-a-half per day, causing sync issues for broadcasters. To counteract this, "dropframe" timecode was developed. At 30 FPS, there are 18000 frames per ten minutes; at 29.97 exactly, there are 17982 frames per ten minutes. To account for the eighteen-frame difference, we "skip" two frames on every minute not divisible by 10. For example:
30 FPS
00:00:59:29 + 1 frame = 00:01:00:00
00:04:59:29 + 1 frame = 00:05:00:00
00:09:59:29 + 1 frame = 00:10:00:00
29.97 FPS, dropframe
00:00:59;29 + 1 frame = 00:01:00;02
00:04:59;29 + 1 frame = 00:05:00;02
00:09:59;29 + 1 frame = 00:10:00;00
The question:
The math works out at exactly 29.97, but the framerate is slightly faster -- 30*(1000/1001) works out to 29.97002997002... The difference is negligible for any single piece of footage; the error here only works about to about two-and-a-half frames per twenty-four hours. But how does a master sync generator account for these extra frames? There's no labeling scheme for them, and midnight will not occur on a clean frame.