Like I mentioned before, drivers are the HW manufactures responsibility. The drivers MUST be x64 in order to work on a x64 kernel, you can't mix and match code types in a kernel or all hell will break loose.
MS has had the NT x64 kernel out since Windows Server 2003, Windows XP Pro x64 is actually based on the Server 2003 x64 code tree and not the original Windows XP code tree. MS wanted "power users" to start using Win XP Pro x64 for their workstations and development machines but it didn't get much traction due to HW manufactures not making 64-bit drivers.
When MS released Vista they made x64 drivers a requirement to obtain MS WHQL which is the gold stamp required for the "Vista Ready" logo. Some peripheral device manufactures refused to make new drivers and instead just made drivers for their "new" products. They used it as a selling point for people to buy the latest shiny model of camera / scanner / printer. That is the device manufactures problem not MS's.
My personal story is that I started working with XP x64 on my main system cause I wanted to see how it worked. I was so impressed with the system stability, the thing just didn't crash and ran rock stable no matter what I did on it. Applications ran no problem, and all was well.
Those people screaming about "my app isn't 64 bit it won't work" are dead wrong. 32-bit Applications running inside a NT x64 system are executed inside a 32-bit environment through WoW64. To the application the system is 32-bit. NT x64 even has a special directory under windows\system32\wow64 that contains all the 32-bit library's and other sum-such required for those programs. If your 32-bit app runs in Windows 7 x32, then it'll run in Windows 7 x64. The only exception is if you app has some kernel mode interface involved. These are things like anti-virus, anti-spyware and system tools / registry cleaners and such. These apps need to be updated to run / recognize the NT x64 kernel. NT x64 is not the same kernel as NT x86 really important that people make that note. The NT x86 kernel is basically emulated inside the NT x64 one, so anything kernel level isn't guaranteed to work.