Well, I have constructed a workaround to this issue, and it appears to be resolved. It's not exactly pretty... basically I took a little SPST, normally open relay and hooked the coil pins to ground and digital pin 02, and the switched pins to ground and the reset pin.
You can probably guess what comes next... before initializing the ethernet library, I look for a flag at an address in eeprom. If the flag is 0, we set it to 1 and then trigger the relay, and the unit resets. If the flag is 1, we assume that we just did a warm reset and set the flag back to 0, for next time we power up.
The pastie below is the code snippet I wrote if anyone is interested (let me know if there is a better way to accomplish this sort of thing, I'm new).