This is easy on Linux and a bit more difficult on Windows, but I wrote a (untested) way of how this is can be possible on Windows 2000/XP hosts.
Look at this thread with question:
http://forums.virtualbox.org/viewtopic.php?t=1887
And my answer:
The way I see VirtualBox auto-start on boot working:
1. After you start Windows, your normal user starts...
2. (XP host) Start->Accessories->System tools->Scheduled tasks
3. You make a new user: "VBoxUser" with admin privileges.
4. You write a script (*.bat) that starts VirtualBox and your VMs.
5. "Scheduled tasks" should auto-start VBox with different user "VBoxUser", with
admin privileges.
--NOTE: This is possible, if you supply "VBoxUser"'s password to Scheduled Tasks.
I think we need to add that to VBox documentation (if it lacks)
-Technologov