Just connected a Windows PC to my FreeBSD 8.2-STABLE CUPS printer server. The PC was in the DMZ, so required a bit of firewall poking. The basic thing to do is create a class with CUPS.
I opened two ports in my ipfw firewall: 631 (ipp) and 515 (printer). I added the Window PC's ip address to /etc/hosts.allow:
cups-lpd : windows.example.com : allow
Had to change some settings in /usr/local/etc/cups/cupsd.conf as well: cups must listen on the network card for my DMZ obviously, as it didn't do that before. And in the
Next I simply did "Add a printer", clicked on printer is not listed, and specified as name http://www.example.com:631/classes/pcl and that's it. Windows prompted me for a suitable driver, and done.