I recently did an implementation where the customer wanted to have a solution where they can have redundant print servers serving all the print queues and migrate all of them without any outage. Among couple of different options - MSCS, NLB, DFS etc, we went with NLB.
I'm going to give you the complete details on how we did it. Though this works seamlessly and customer is happy, it is not "supported" my MSFT. So, decide and use at you own risk.
1. Configure NLB on the 2 servers using the "Network Load Balancing Manager" (part of Admin Pack) use a dedicated NIC on each server and use unicast. Some CISCO routers do not pass ip address with multicast MAC addresses
2. Set NLB Port Rules to listen on port 135 (TCP/UDP) and ports 1024-65535 (TCP/UDP)
3. Configure the print queues identically on each server including Printer Name, Share Name, Driver etc. You can use printmig utility (download here). You can setup all your queues on one server and migrate them over using the tool to the second server very easitly.
4. Make the computer policy change on both servers. On the Local Computer Policy set "Computer Configuration > Administrative Templates > Printers > Allow Print Spooler to accept client connections" to Enabled and restart the Print Spooler service.
5. Manually create a DNS A record pointing to the IP of the NLB Cluster.
Now comes the tricky part - Obviously, those who need a new mapping would go with \\NLBClusterName\PrinterShareName, very simple and easy right?, but what about those users who are still mapped to the printers using old name? Alright, here's the trick - First you add a DNS A record for the name of each of the old print servers which points to the new cluster IP. Be sure to remove the old DNS entries or rename them to avoid duplicate name and un-planned outage (needless to say that a proper change management is required.)
7. Add an alias entry for each old server name you want the new server to be identified with on the new load balanced servers. The idea here is, if anyone uses old server name to map their printer, they'll automatically be re-directed to the new one.
Navigate to registry hive, HKEY_Local_Machine\System\CurrentControlSet\Services\LanmanServer\Parameters
Add Value: OptionalNames REG_SZ String: "Alias"
If you make it a type REG_MULTI_SZ, you can add multiple aliases.
If do not like step 7 and feel that you shouldn't be dealing with old print server names then use login scripts to re-map your users to the new print server or deploy a software package using a software deployment tool (SMS, Altiris etc) to re-map them.
Have Fun!