From here:
"There are three approaches I can think of. The first (clustering), we can
discount for all but the bigest of networks on the grounds of cost.
The second is to use the network load balancing (NLB) feature of Windows
Server 2003. Microsoft doesn't recommend using this for print serving due
to the fact that you won't have shared storage, and the print queues will be
lost if a server fails. However, I would think that for a lot of people, if
the worst thing that happened when a print server failed was that some users
had to click "File | Print" again, that's not too much of a trauma. I have
tested this in a lab environment and it seemed to work OK for me.
The third approach is to have a second print server as a standby machine.
Disable strict name cheching, as described in the following article.
Connecting to SMB share on a Windows 2000-based computer or a Windows Server
2003-based computer may not work with an alias name
http://support.microsoft.com/default.aspx?scid=kb;en-us;281308
Then, point all your machines at a DNS alias name that you create.
Initially, this alias points to the main print server. Periodically use the
PrintMig utility from Microsoft to back up the main print server and to
restore to the standby server. When the main print server fails, repoint
the alias to the standby server.
At worst, users may have to reboot (or otherwise clear their DNS caches),
but it's a whole lot better than having a print server fail with no backup
and no plan."