This past summer, I had quite a few problems with some of my ethernet shields when the temperatures got hot. I had intermittent connectivity and sometimes the shields would need to be reset, or would only work randomly whenever ambient temperatures were up above 80 degrees F or so (I have a few in the garage). It took me a while to figure out that the problem was with the w5100 chip on the shields. They get hot (or at least the inexpensive eBay knock-off versions I have been buying do).
I was able to make them work in a completely reliable fashion by attaching a small heatsink directly to the w5100 chip with some thermal paste (cpu paste). I was able to get some 11x11x5mm heatsinks from eBay for about $2.50 shipped for five of them.
Anyhow, if you have experienced unreliable results with Arduino Ethernet Shields, you might try this. It worked perfectly for me.