So the issue is with chaining variables for some reason in msbuild. The following works for me, notice that I have to only use relative paths based on the MSBuildProjectDirectory variable.
<CreateItem Include="$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI\**\*.*"
Exclude="$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI\**\.svn\**">
<Output TaskParameter="Include" ItemName="WebFiles" />
</CreateItem>
The following does not work
<PropertyGroup>
<WebProjectDir>$(MSBuildProjectDirectory)\..\Client\Web\Foo.Web.UI</WebProjectDir>
</PropertyGroup>
<CreateItem Include="$(WebProjectDir)\**\*.*"
Exclude="$(WebProjectDir)\**\.svn\**">
<Output TaskParameter="Include" ItemName="WebFiles" />
</CreateItem>
Very strange! I just spent like 3 hrs on this one.