I've got a really confusing problem. iTunes on my Mac for no apparent reason cuts off the end of some songs. It could be the last 10 secs or 15 but on most it's fine.
Do you have the crossfade playback preference checked because that will fade in the next song before the song finishes. If not then I would suggest you get info about the songs it cuts off and under the options tab make sure the stop time is not checked so that it doesn't stop early.
Is it by any chance always the last track of the CD? That was an importing bug in a recent iTunes. If that is the issue, upgrade to the newest iTunes and it should stop happening (although you will need to reimport the buggy ones).