OK. I have the same problem too. Here is a brief explanation of my setup and some test I have done:
Qnap TS209 server, iMac 24, macBook (13 inch), mac Mini (2009 model), Netgear GS108 switch.
All computers are connected to the Gigabit switch with cat 5e cable. Now, the macBook, mac mini and Qnap all connect at 1000T, the iMac only connects at 100T with the "cable unplugged" error if trying to configure it to 1000T. I have tried all the cables in different ports etc. but still the iMac will not connect at 1000T. I checked in the 'About this mac' on the mac Mini and the iMac and both are using the same NVIDIA network cards!
I bought a cat 5e crossover network cable and connected the iMac directly to the macBook and the iMac automatically connects at 1000T!!!
So why when it is connected via the Gigabit switch will it only connect at 100T. I don't want to spend out on another network switch, just in case I get the same issue with a different one. If I knew a new switch would do the trick I would probably buy one, but what make and model would be best?