First option, maintain two different .proj and .sln files (one for version 12 and one for 14).
Second and crazy kludge approach is as follows.
Add a dependant console application project to the solution, then add a post-build event to that project and make it run "always", in that post-build event execute the console application.
Within the console application include code to check if the highest version of Office that is installed and update the project .proj files as needed (only update if there is a change, don't update if no change).
First build will cause the project file to be changed and visual studio will prompt as it requires reloading, the second build will build perfectly fine.
This gets rid of the manual process but it still has to change the project file (which might cause havoc with your svn/git repo if you just commit all changes all the time).
Your other option is to try installing the office 14 primary interop assemblies
and see if that lets you build without having version 14 installed.