For some time now, since at least August, I've been acquiring parts and building up a computer (for scarletcharnel). The hardware was the easy part. I had a bit of a time with a Linux (Xubuntu) install to test things out. I purposely held off on installing Windows (not my choice of OS, but this isn't my machine) until I had all the hardware that it would have to deal with. I did not want to deal with whatever nonsense Windows has about authentication and hardware changes. So, after I confirmed that everything was working, I set out to install Windows (7, 64 bit, Professional). And I cussed and grumbled more than I had in years.
It's actually fairly simple, but only to someone already familiar with Windows quirks. For a confirmed Linux user, it's an exercise in frustration as Windows consistently fails to do the right thing. So, here goes, for my own future reference, as through this I wound up with an extra copy of Windows (7, 64 bit, Home Premium) and might yet go though this again.
Zeroeth, set BIOS and such to use EFI mode, even for the DVD/CD drive. Yes, this is important. At least for the Windows install. If you do not do this, Windows will insist it cannot install to a GPT (bye bye MBR, we're using big disks now) partition. Linux will simply go where you point it. Set up the disk as GPT. I recommend PartedMagic for disk partitioning (gparted is your friend), re-sizing, and all the badgering you'll need to do make Windows co-exist with Linux.
First, be prepared to fully back up everything or lose it. Windows does not play nice with other operating systems and demands to be the first (and "only") thing installed on a fresh disk. Stupid, but it is Windows where stupid is standard. Now install Windows. It will whine that the system that booted many times just fine might not boot do to configuration issues. Windows is an idiot. Ignore the idiot and go on with the install. It will create three partitions: an EFI boot partition, a Windows recovery partition, and a Windows partition.
Next is to shrink the Windows partition to not take up the whole disk (besides the efi/boot and restore partitions). Allegedly Windows can do this itself, but I don't trust it any farther than one could comfortably spit a rat. I used gparted from PartedMagic and shrank the Windows partition. I also created another NTFS partition for the user that is at least somewhat isolated from the main Windows partition. If Windows must be reinstalled, it can do upgrades or repairs with less (though not zero) risk to the user data. Boot into Windows and let it cope with the new size of the world, which it will whine about. Too bad. In a glimmer of hope, Windows will see and mount the new user partition.
Unless you want to deal with the Linux install right away, now is probably the time to hunt down all the boxes the hardware came in and dig out the manufacturer's driver disks. You get to play disk swap for a while installing everything as Microsoft hasn't got a nice easy software repository to make life simple and easy. Also, it might need you to give drivers for drop-dead common networking hardware and stuff like USB ports. Yes, Windows really is an idiot.
Reboot with PartedMagic and use gparted to create the Linux partitions. I kept it fairly minimal with / and /home and swap. /home by itself for the same reason as the separate Windows user partition: keeping OS and user data somewhat isolated just makes sense. I made the Linux partitions (aside from swap, of course) ext4.
Another reboot with the Linux install disk and, if the hardware & software get along (I don't know why, but *buntu 12.04 tends to go black screen on new hardware for me) you simply install. As I wanted Xubuntu 12.04 and it wasn't behaving as it ought, I installed Xubuntu 11.04 and let it update itself to 12.04 when it asked. Yes, that 12.04 is goofy this way shows lack of clue somewhere, but at least I had networking and such right off. (Windows: Durrr, what's a USB port? Linux: Oh, hey, I found this camera on one of the USB ports, want me to take your picture for the login screen?). At the end, install grub2 to the / partition.
Use Parted Magic again, but don't let it boot up by itself. Stop it at the first graphic screen and choose Extras and have it boot with grub. It will find the Linux install and boot from there (just using the hard drive will boot Windows without any choice). Do NOT waste time with EasyBCD to try to cajole Windows into doing the right thing. EasyBCD doesn't (yet?) handle EFI so it will only waste time. In Linux, run the updates as needed, and be sure the correct video driver gets installed - don't want to end up with a blackscreen from Xubuntu 12.04 again.
Find and install BootRepair. Sadly, this is not in the *buntu repository so a bit of command line work and using an alternate repository will be needed. Run it. Decide which operating system should boot by default. In this case, I decided it ought to be Windows. Not what I'd do for myself, but again it's not my machine.
Enjoy dual boot. Set up Windows, set up Linux, installing whatever programs seem to be good to have around. One of them is Ext2Read which will let Windows see (read only, unless you like living dangerously) the Linux ext4 partitions. This is better than leaving Windows to claim they need to be formatted. Windows, by itself, doesn't grok much in the way of filesystems.