Here's a couple of MSBuild gotchas...
When specifying paths to your Include / Exclude ItemGroups make sure to use backslashes (\) I've found that forward slashes (/) seem to make the exclusion not work...my guess is that they compare it against the current search using back slashes on the search item, but not on my include item....haven't dug into the code....just a guess.
Second be careful that when you are overriding default MSFT targets using PropertyGroups as shown http://blogs.msdn.com/msbuild/archive/2006/02/10/528822.aspx that you do it at the bottom of your project file after the default imports. I was overriding the behavior in my common targets file, but had my import statment before the microsoft one...so of course it didn't work.