One method for achieving this in Windows itself is a utility called "Syskey" that can be run from a standard 'Run...' or Start Menu Search prompt. I'm not sure how far back the feature goes but I personally use it on Windows 7.
Running syskey allows you to encrypt your accounts database for additional security. By default the encryption key is stored locally on the drive windows is installed upon. However you can set a floppy drive to hold the key as well, which means that to access any account on the PC that floppy needs to be inserted first. The trick though is that by default Windows reserves the A: drive for 3.5-inch floppy use and B: for the older 5-inch floppy. That can be used to make ANY drive, USB or otherwise, recognized by windows as a floppy drive, even at the DOS / shell level.
Set the drive letter of the USB drive to 'A' by going to My Computer and right-clicking on it. Select "Manage" from the rollout list, then select Disk Management from the window that opens up. Right click on the USB key in the right sided pane, then select "Change Drive Letter and paths…" to bring up a dialog. There you can choose a drive letter, and simply choose 'A' from the list. Note that any existing drive set to use A: will need to be similarly assigned a different drive letter before the A: label will appear in the dropdown list.
Upon booting Windows, you should now be asked to enter the key disk before you can log into an account. If you have windows set to log in automatically then just pop in the USB and hit Enter. With log ins required it will instead take you to the account log in screen.
PLEASE NOTE, this process sets your Windows installation to REQUIRE the USB drive be plugged in any time an account action is taken. You will not be able to access or recover your Windows installation without the USB drive.
The key file itself is called "syskey.key" and should never be touched. It is a constantly changing file too, so you can't simply make a copy for backup or multiple users. Reversing the process can be done by running syskey again and telling Windows to store the key file locally.
I know this is an older question but I just spotted this randomly in a Google search and decided to help anyway. I get a lot of indirect help from this site so it's nice to give back. :3