*dusts off an old idea from dial-up days*
Set up a server print queue, shared. On the client machine, create a local print queue with a ""port"" pointing to the share (\\servername\sharedprintername\). The client would print, spooling the job into the queue with lower reliance on the network connection.