My suspicion is that this is a mechanical problem occurring because of differences between your old CD-writer with your new CD-reader. Either that or your old CD software was slightly buggy. Try the CD on another computer; maybe you have a friend with a fairly old system. If it works there, save the contents to a USB thumb drive, bring it home, and generate a new CD.
It is technically possible that the problem is with your new system, and the CD is fine. If this were the case, you probably would have had other problems before now, though. Another possibility is that the CD has gotten corrupted with age. However, the fact that every song exhibits the same problem makes random bit degradation an unlikely cause.
As a last-ditch fix, copy the files onto your own disk. They will contain extra data at the end, which you should be able to crop using an MP-3 editor. Using Google, I see that there are free programs and even online utilities which should do the trick. Once you have corrected all your files, you can burn another CD with them.
IIRC the CD "file system" is a kludge on top of a system primarily designed to play consecutive music files. Part of what happens while burning files is that first an "ISO image" of the data is built. It contains what is to be written, pretending to have the kind of disk sectors and tracks a normal r/w file system uses. The CD is actually writing spirally outward from the center, and it lacks physical tracks and sectors. A mismatch between physical reality and ISO pretense could be a contributing cause, or the ISO-image portion was poorly written.
Speculation: Imagine if the ISO spec requires that files be 0-filled to the end of a whole sector boundary (512 or even 2048 bytes, say). But the buggy old software you had in 2003 failed to do this. Buffers were re-used, and non-cleared data from the old song still remained in the final sector buffer of each new song. Your old software was smart enough to use a file-size byte-count to denote end of file. Now imagine your new software reads entire sectors and expects to stop at either the end of the final file sector or until it starts seeing 0s. The mismatch between how your old software and new software detect end-of-file could explain this problem. It would be a weird case of complementary bugs, but that kind of stuff does happen.