Let me take #2 since the answer is easier and less technical. For this case, you want to use Environment variables. Environment variables allow you to have values that change between your environments. For example, you could create an environment variable called "EnterprisePortal" and use it in the SharePoint wizard. You would set this variable to the appropriate value for each environment. When you deploy, you specifiy an environment and the values associated with that environment will be used. You can even change the values after they are deployed by going to the StringTable section of the management console.
For a good explanation, go to our kb web site (kb.k2workflow.com) and search for the whitepaper on using msbuild.
The statements and opinions made in my postings are my own, and do not reflect the opinions of SourceCode Technology Holdings, Inc. or its subsidiaries. All information is provided as is with no warranties, express or implied, and grants no rights or licenses.