I have a web.config with 2 transforms - for debug and release.
web.config:
If you want to build with Visual Studio 2010, add the following line to your configuration PropertyGroup in your .csproj:
<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>
More details here: How to get rid of "$(ReplacableToken...)" in web.config completely
If, like me, you're running up against this problem while trying to automate your build process using msbuild from the command line, the correct answer can be found in this blog entry:
http://www.zvolkov.com/clog/2010/05/18/how-to-packagepublish-web-site-project-using-vs2010-and-msbuild/
Specifically, the parameter you need to set is:
/p:AutoParameterizationWebConfigConnectionStrings=False
This is most likely what VS is doing on your behalf when you publish to the filesystem