My ethernet shield seems to randomly not work when I plug it in. It used to work every time, and now I have to look at the serial port to see if it is connecting to my external site or not to be sure. It seems to either work from power-on or not, and if it doesn't I have to unplug the arduino and try again. I am using the Mega with the NKC ethernet shield. Any ideas?
Do a forum search for "ethernet reset": you'll find several complaints from people about Ethernet shields not resetting correctly. It appears to be related to how the RST pulse gets generated on different boards, possibly including variations due to component tolerances. I did the change to "manual" reset on my Adafruit Ethernet shields, and my reliability problems went away.
This did not fix the problem, in fact the ethernet module didn't work at all. I noticed pin53 from my shield came unplugged, and I think it may have fried the ethernet shield when it came loose. I haven't had time to debug it yet though.
I found the cause, it appears my build environment was the issue. I made a change and compiled it where the unit was plugged in, and I must have missed a step or something (I did update spi.h). I took it home, plugged in the same code and compiled and uploaded, and it worked fine!