ASP.NET is a great technology for building web sites but it would be even better if it rendered different HTML. For example, the Menu control makes it simple to add a menu to a web site but it would be better if it didn't create <table> tags and was easier to style using CSS. Happily, it's easy to "teach" the Menu control how to generate the kind of HTML that you prefer. Indeed, you can modify any ASP.NET control so it produces better HTML.
The key is to use something that may be new to you: control adapters. These are little chunks of logic that you add to your web site to effectively "teach" an ASP.NET control how to render better HTML.
Download CSS friendly ASP.NET 2.0 control adapters