Set-up your printer on your linux box. Make sure it is working.
If you want to use a local network you'll need to either share the windows internet connection or you'll have to have two Ethernet cards.
Open System Administration and then Printing
Select your printer and click on Server then open Settings
check mark; Show printers shared by other systems
Publish shared printers connected to this system
Allow printing from the internet.
right click on your printer make sure it says shared and enabled.
set it as default.
If yo don't want to share the windows internet and only have one Ethernet Card, You'll have to edit hosts.allow
Open terminal and change into the etc directory
sudo gedit hosts.allow
click save and close window.
I guess it's not really safe though!
Then either open Firewall configuration if installed and open port 631 in and out. I am not sure which ones are need though maybe open both TCP and UDP.
For my pc, I've set a two launchers on my Desktop and entered the following.
to open the printer for the network and
gnome-terminal -x bash -c "sudo ufw allow 631"
for closing it after printing is finish.
gnome-terminal -x bash -c "sudo ufw deny 631"
Now you'll need to go to your vista or windows machine and open the firewall ports as well 631. You can find instructions on youtube for that.
Finally you'll need to have a static IP if you want to print over the internet.
If you don't have one maybe DYNDNS or something like that could work.
Otherwise open your printer set-up routine on the windows machine and
select Connect to a printer on the internet
enter the printer URL
You'll need to check on your linux box for the correct printer name
You'll be prompted to select a driver
select a Manufacturer of "Generic" and the Printer "MS Publisher Imagesetter"
driver will install and work.