For a very specific job, we are working with an old DOS program: Q&A 4.5.
To print to DOS we share two USB connected printers in Windows and we use the NET USE command in the batch launching our DOS application.
net use lpt2 \\name of the machine where the printer is connected\name of the printer /persistent:no
This way, you can use a printer connected locally or elsewhere in the network. As long as we are using a compatible driver in our DOS program (Laserjet 2, Deskjet 500...), it works fine: yesterday, I connected a RICOH 3300D and it took me 5 minutes to get it working.
We are doing this with Windows XP, never tried with Seven but it could work.