Q:

ASP.NET website 'Publish' vs Web Deployment Project

if i decide to use the 'publish' option for my ASP.NET website, instead of a Web Deployment Project, can i do custom msbuild things?  Or do i need to stick with WDP's if i want to do custom msbuild stuff during compile/deployment. 

A:

I think of the publish option as a part of the VS.NET toolset for developers to use to publish web sites on dev machines.   It isn't really built to be a real deployment. 
If you need custom actions, a Web Deployment Project would be more suited to a real deployment that multiple people other than the developer run regularly and that you want created with each build. 
I would also look at three other options:

PowerShell: A good way to script against IIS, set up websites, etc.   You can even build cmdlets from OO code (like C#) that your script can call.   Many professional IT firms use it to deploy big web sites. 
MSDeploy: A new deployment tool for websites that can replicate a vroot over several servers.   Very good for having your golden image and then blasting it out to various places. 
C# application: If you are a more advanced developer, you can always write your own application that xcopies files (via Process) and uses WMI to configure IIS.   Harder, but you have complete control.