Ethernet shield permanently returning 0.0.0.0 after working for a few hours

I have not seen that one. For some reason, the connection is failing. It will take about 20 seconds to return from the client.connect() routine if it cannot establish a connection to the server. The watchdog timer only waits 8 seconds, correct?

Maybe it is the ethernet shield. Post your results when you get the new shield.

edit: Check your ethernet shield carefully. There has been one case where the w5100 had pins solder jumpered. Take a look at the pics in this subject.
http://arduino.cc/forum/index.php/topic,90960.0.html