why won't ethernet stay connected for more than a few hours?

I combined all the fixes I could into a demo sketch in the playground.
http://www.arduino.cc/playground/Code/WebClient
Have you tried that?