Auto-negotiation has never really performed to well. Speed wise it is fairly reliable, duplex wise, it is often wrong more often then correct. The chipset used in the NIC and the switch used can greatly affect the success rate. For any critical node, I always hardcode the speed and duplex, even if a machine can negotiate properly, it may make a mismatch down the road and cause problems. For end-user machines, I could really careless, as they won???t be able to tell the difference between full and half-duplex anyway.
I would set the workstation and the switch to the desired speed and duplex setting.
Lance