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.