Recovering from (or at least gracefully handling) a network interruption

I have a beta tester who takes his job seriously (thankfully - he does
things to my programs I wouldn't have dreamed of doing) and has reached a
new height in disaster testing. Mid transaction, he simply unplugged his
machine from the network then sat back to see what happened. It wasn't
pretty and he took great delight in telling me all of the {*word*193} things that
happened. Fortunately, IB just rolled back (as it is supposed to) so the
data wasn't corrupted, but my poor program just bled all over Windows then
died.
What I need to know is how one would monitor and then gracefully handle such
a {*word*268} occurrence. I have (by accident) achieved the same thing when I
have forgotten to shut down IBConsole then rebooted the server it was
talking to. IBConsole also bleeds all over then dies badly (in technical
terms I receive multiple AV errors, "privileged instruction" errors, etc.
before Windows 2K Pro sp 2 just drops the whole thing into the bit bucket).
What can I do to handle this type of error?
Also, I am presuming that the development of IBExpress is an ongoing thing -
where is the latest released source that I can fetch?  The latest one that I
have is from the IB6.5 release.