Here are some core best practices related to Team Foundation Build:
Avoid modifying the Microsoft.TeamFoundation.Build.Targets file. The reason is that Microsoft reserves the right to make changes to the file at any time. Instead, put your customizations into your tfsbuild.proj file.
Avoid having dependencies across team projects and try to have all the related or dependent solutions or projects under the same team project. It will make your project files a lot easier to manage. Use project-to-project references in your .csproj file as much as possible and avoid file references. If you are working on Web projects, use the Web Deployment Project (http://msdn.microsoft.com/asp.net/reference/infrastructure/wdp/).
To troubleshoot Team Foundation Build issues and to gather best practices, refer to "Troubleshooting Guide for Team Build," a white paper available at http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=154526&SiteID=1&PageID=1.
The build server should be installed on a client, not the application or data tier, in order to avoid possible security problems related to the build service running with higher security permissions.
Avoid synching redundant files and folders in your build. Do the work upfront by choosing the right workspace template while creating the build type itself.
Once you have successfully set up the build and have run one successful build, set the SkipInitializeWorkspace flag with ForceGet set to false to avoid deleting and recreating the same workspace again and again.