The following only affects 2.2 kernels.
Note that there is a bug somewhere that makes the netcard freeze the whole system when shutting down eth0. According to Martin Espenschied, this is a known issue, and can be fixed. When I know how, I'll put the information here. Till then, remember to sync your system before shutting down, and you should not miss any information. Remember my disclaimer in Section 1.2 though.
An ugly hack to resolve this might just be to NOT to shut down eth0 at shutdown/reboot. This can be done by editing the file /etc/init.d/network (or similar), and in the stop) case, just comment away the ifdown command, and add a phoney command, like this:
action "Shutting down interface $i" echo does_nothing # ./ifdown $i boot