Terminé usando ambos. Al rediseñar nuestro sistema de compilación, me enfrentaba a un problema complicado. Es decir, no podía deshacerme de .vcproj (y familia) porque todos estábamos usando VS para actualizar los archivos, configuraciones y configuraciones del proyecto. Entonces, sin un gran proceso de duplicación y propensión a errores, no podríamos basar nuestro sistema de compilación en un nuevo conjunto de archivos.
Por esta razón, decidí mantener los archivos 'proj' de VS y usar MSBuild (son archivos MSBuild, al menos VS2005 y VS2008 usan archivos de proyecto MSBuild). Para todo lo demás (configuración personalizada, pruebas unitarias, empaquetado, preparación de documentación ...) utilicé NAnt.
Para una integración continua, utilicé CruiseControl. Así que teníamos scripts CC que activaban trabajos de NAnt, que para la construcción usaban MSBuild.
Una nota final: ¡MSBuild NO admite proyectos de instalación! Así que estás atrapado en llamar a DevEnv.com o usar Visual Studio directamente. Eso es lo que terminé haciendo, pero desactivé el proyecto de configuración de forma predeterminada en todas las configuraciones de soluciones, ya que los desarrolladores normalmente no necesitarían compilarlas, y si lo hacen, pueden seleccionar manualmente para compilarlas.