Em /etc/init/cups.conf
você pode adicionar uma linha onde você diz ao upstart que ele precisa esperar que o samba seja carregado. Esta é a parte relevante:
start on (filesystem
and (started dbus or runlevel [2345])
and stopped udevtrigger)
stop on runlevel [016]
Adicionando um
and started smbd
terá cups
de espera pelo daemon do samba.