missing?:
Samba
smb4k is working fine so presumably Samba is Ok
Cups
I had the very same printer plugged into my PCLOS machine as well as a Fedora laptop I was playing with. In both cases CUPS recognised the printer and the printer worked fine with jobs from my PCLOS machine.
Canon printersupport
See above.
To summarise:
PCLOS print job to directly attached printer - OK
PCLOS print job to networked printer on Fedora laptop - OK
virtualised XP (under PCLOS) print job to networked printer on XP laptop - OK
PCLOS print job to networked printer on XP laptop - Does not recognise printer.
From all that's working all the pieces of the puzzle are in place, cups, samba, canon drivers, ports, XP serving Linux on, etc etc. So why that last failure?
thanks,
It's been a long time since I setup a shared printer (in fact, the PC sharing my printer at the moment is very broken...can't even ssh into it, but the
printing still works!

)
Any way, I do recall that when I shared this printer (via SAMBA...it's on a PCLOS machine), I shared it as a RAW device, because Linux did not have good support for the printer (a Canon S520) at the time. This allowed a Windows machine to print with the MS driver, and everything worked fine.
Where I'm heading with this is, can Windows share the printer in a similar Raw fashion? This would allow the Linux driver to send it's own codes to the printer...otherwise, Linux will send it's codes, and the MS driver will try to interpret them as requiring translation (to the MS driver's code).
Just a thought...have you tried sharing the printer from Linux, and accessing it from Windows?