This is similar to the existing question Upstart on Debian?
Regardless of version, it must be disclaimed that running
upstart as the init system in Debian seems to be "at your own risk". That being said...
In Debian Wheezy (oldstable as of 2015), the
sysvinit package is marked
Essential, which is probably why the
upstart isn't very "sticky".
Two mechanisms that can be used to place restrictions on
apt's behavior are
apt_preferences and dpkg blacklisting.
apt_preferences are described in files under
/etc/apt/preferences.d/; read the man page linked above.
dpkg blacklisting is described in a nixCraft blog post. You could try:
echo "sysvinit hold" | sudo dpkg --set-selections
As of Debian Jessie (stable as of 2015), the
sysvinit package is a transitional package and no longer essential:
This package depends on init, which is an essential package that pulls
in the default init system. Starting with jessie, this will be systemd
on Linux. It facilitates a smooth transition and provides a fallback
SysV init binary which can be used to boot the system via the
init=/lib/sysvinit/init kernel command line parameter in case the
system fails to start after the switch to systemd.
If your system successfully boots with systemd or if you have chosen
to stick with sysvinit-core, this package can be removed safely.
So I would guess that you aren't running Jessie, but if you are you could try the Wheezy solutions described above.