KVM switches can feed incorrect EDID information to the PC. I've worked with one KVM setup where we had temporarily swapped a 17" CRT for a 15". Weeks after that, I booted up a Linux box on the switch and it came up using the 15" monitor frequencies. It turned out the KVM switch was still passing on the 15" data (easy to spot as the monitor serial number is part of the info.)

Windows seems to grab whatever settings it first encounters and doesn't care much about changes afterwards unless you go fiddle with the display settings. Linux believes what it receives in response to its P&P requests and pays the penalty if the data is incorrect.

The graphic cards themselves are involved as well. If the card can't detect a monitor on a port when the PC is started, it may just shut off the port. In that case, I haven't yet found a way to get anything back to normal short of rebooting because even recycling the X server will not reset the card.

E.g. a GeForce card with S-VHS port assumes you want TV out when no monitor is attached to the DVI or analog VGA ports and will enable only the S-VHS port. A monitor plugged in afterwards will not get any signal.