<p>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.</p>

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.