Couldnt get my wife's Canon CP 300 thermal printer working under Vista using the XP driver at first. Thought it might be the way USB printers are handled, so I connected the printer via USB to my Buffalo NAS which has a printserver for UNIX and Windows in it. The Windows side wouldn't print...but... I installed Print Services for UNIX LPR on the Vista and Win 7 machines (32 bit OS), restarted, and setup a new printer this way:
add a printer, a local printer
create new port - unix lpr
device - ip address or name of print server (mine was NAS1)
queue - name of the lpr queue (mine was lp)
for the driver, I used the XP driver! It worked in Vista and Win 7.
I also turned off spooling in printer properties/advanced tab, a.k.a. print directly to the printer..why spool a spool?
This should work with other printers, other printservers (if they have lpr support), just try it and see. (n.b. make a restore point first before you try in case the XP driver is fatally flawed.)