I recently bought a number of cheap W5100 Expansion Board "shields" on eBay. They are labeled as HanRun HR911105A 16/02. I tested them using a genuine Arduino Duemilanove.
None of them worked when connected to the switches of my LAN. The LAN has a mix of Gigabit and 100MB NICs with multiple GB/100MB switches. The switches are a mix of Dynex, LinkSys, and Netgear ProSafe switches.
The shields did work when connected directly to the RJ45 jack on an older laptop running Windows 7. Given that hint, I tested the shields by connecting them to an old LinkSys 10/100MB 8-port Hub, and then connecting that to one of the GB/100MB switches. When that is done the shields work with no apparent problems.
When the shields were not working, they could not be pinged, could not ping any other network devices, of course didn't work with a multitude of known-to-be-working sketches, and there was no trace of them via packet sniffing the network.
The failures occurred whether the Arduino/Shield combinations were powered via USB or via external 7-12 volt supplies.
I am posting this here to potentially help others who also find that these shields don't work with their systems. Other posts have already covered the other obvious potential culprits causing this behavior, none of which were germane to the issue here. If all else has failed to bring your generic Ethernet Shield to life, dig out an old legacy hub and interpose it between your shield and the rest of your network. You may be pleasantly surprised!