For what it's worth, I once had skipping issues on relatively slow hardware, but the problem appeared only in iTunes, and not in any other media player.
This was a Windows platform, but the software scheme is likely similar.
The issue was caused by the confluence of three conditions:
- a large audio library
- slower hardware (i.e. Pentium 4/XP run-of-the-mill consumer rig), and
- iTunes being the media player.
Apparently, for reasons not understood by me, iTunes uses an XML file as a major component of management of the whole library. iTunes updates the database at the conclusion of every recordable event, such as a change in ID3 metadata, or even, the playing to the track, whereupon iTunes notes this in the Play Count, and immediately updates that XML file.
Well, that's all good and fine for the average music library. Mine happened to be about 125GB at the time, however, and the library's size caused that database XML file to blow up to about 48MB.
So, each time a track finished playing, the PC was not only trying to crank up the next track, but also read/write a 48MB xml file, which is ridiculously massive in size and lengthy in time to rewrite. Maybe this helps.