Why force every user that installs virtualbox to have the kernel headers and a development environment installed? That then also puts files under /lib/modules/<kernel version> that aren't under dpkg's control, which defeats among other things, update-initramfs, since you remove the old kernel, but the virtualbox modules are still there, which means dpkg won't remove the directory, and update-initramfs says "Ah, I need to regenerate the initramfs for every directory under /lib/modules". Which now includes the old kernel, since dpkg didn't delete the directory. This leads to user confusion as well, since update-initramfs will say that it is updating the initramfs for that old kernel which the user has just removed.
Why force every user that installs virtualbox to have the kernel headers and a development environment installed? That then also puts files under /lib/modules/ <kernel version> that aren't under dpkg's control, which defeats among other things, update-initramfs, since you remove the old kernel, but the virtualbox modules are still there, which means dpkg won't remove the directory, and update-initramfs says "Ah, I need to regenerate the initramfs for every directory under /lib/modules". Which now includes the old kernel, since dpkg didn't delete the directory. This leads to user confusion as well, since update-initramfs will say that it is updating the initramfs for that old kernel which the user has just removed.