I think you have to manually set the switch's port duplex setting and the nic's duplex setting so they match. Especially on older pc's and servers. I've read that the switch does not autosense properly AND, when you reboot the client pc's and servers, sometimes the nics are set to AUTO, and pick whatever they think is a good connection type at the time (which may be different than before)...
I had a mixed 10/100 environment, and I replaced as many of the old nics as I could with 10/100 3Com cards. (Had to find a few EISA 10/100 cards, which was tough, but they are out there.)
I wound up semi-abandoning the concept of "autosensing"
...i.e., I put any 10mb connections into old 10mb hubs, and any 100 mb connections into 10/100 dualspeed hubs. I then put all the hubs starring out of the switches, and let the switch handle the differences. (Due to economics, we could not replace all of the hubs with switches).
That cleaned things up and the collisions disappeared.