Yeah, I knew Windows should be installed first, but my major issue was always finding drivers, especially for newer or really old hardware.
If there was a good way to run Windows programs (mostly games) natively in Linux, I wouldn't even bother with Windows. It sucks to have to update the OS, and virus/spyware software every two minutes. Not to mention Windows bloatware.
Ubuntu is pretty much the way to go for desktop linux at this point, in my opinion.
If windows 7 is installed first, you won't have an issue with dual booting. You can shrink the windows partition easily enough, ubuntu should walk you through it in the install, I think. (Been a while since I dual booted).
The only issue you typically run into normally is audio / sound cards.
It all works fine, you won't have huge problems with most modern hardware.