What you are after is virtualization, such as VMWareVMWare or VirtualBox, like you said, VirtualBox. These allow you to run any guest operating system within a host operating system, inside a window, just like you are after.
If you set the virtual machine to suspend (or 'save state') every time you are finished with it, you can have 'boot times' of something like 15 seconds.
VMWare and VirtualBox are probably the most reputable cross-platform virtual machine offerings (that are 'consumer friendly'). You could always give Xen a go, which is more for servers, instead of desktops PCs. Here is a guide on installing Windows XP on a Xen VM