Не знаю, поможет или нет, но на примере винды в виртуальной машинке VirtualBox, думаю, должно работать так - в убунте открываете в браузере адрес
http://localhost:631 (зайдете на страницу сервера печати CUPS), и там в администрировании нужно поставить галочку на что-то типа "Расшарить принтер в интернет" (точнее не скажу, шарить таким способом принтер приходилось больше года назад
больше не требовалось, все работает). После этого при установке Ubuntuшного сетевого принтера в винде выбираете подключение через http, а не через самбу. ТО есть выглядит это так - допустим, в вашей локальной сети адрес машины с убунтой и принтером будет 172.16.106.10. В CUPS вы расшарили свой принтер в Интернет (поставили соответствующую галочку в Администрировании)? и при этом не забыли запомнить имя принтера, как он назван в CUPS, допустим, это hp-laserjet5400. Открывая в винде установку принтера и выбирая "Подключиться к принтеру в Интернете, домашней сети или интрасети", прописываете такого вида URL:
http://172.16.106.10:631/printers/hp-laserjet5400. "Далее", "далее" и все должно работать, притом после ребута Ubuntu соединение Windows с принтером не отваливается.
Не знаю, как с реальной машиной, но настроив сетевой выход "мостом" Windows XP, установленной в VirtualBox, в местную локальную сеть с присвоением DHCP, всё работало именно через http. Что интересно, попытки расшарить принтер через самбу у меня самого не увенчались успехом, поэтому я пошел по такому пути.