What is the main purpose of the PC and what will be your main OS? If you are doing Vista, with XP virtual, games won't work so well. A flashed Windows is just another type of dual boot - and is slower because of USB speeds - not recommended unless if you have serious hard disk issues. Straight dual-booting means installing twice (one in both OS) if you want the apps available in both instances - but allows you the greatest flexibility of all your options.
I personally would go Vista and find freeware alternatives for the apps that don't work. If you really need XP and compatibility mode doesn't work for those apps, a straight dual-boot is the better way to go.