Then I started working on SharePoint 2003 and ASP.NET Web Forms.
With 2010 Microsoft has opened the potential to better Web 2.0 interface design. Key new UI and UX features from Microsoft include:
1. SharePoint 2010 new UI which embraces WCAG 2 AA standards, XHTML, and Ajax. This requires that firms upgrade from IE 6 but they should anyways. Ajax gives the new SharePoint web pages modal dialogs, inline editing, and less post backs. For developers it opens the possibility to develop richer Web Parts and Master pages that meet users requirements better than the old SharePoint OTB. With MOSS 2007 design was generally restricted to new colors and graphics, but with 2010's master pages and XHTML you can produce much richer UI.
Div tags were easier for search engines to find and I often wonder how much of MOSS 2007's bad search is the engine and how much is the HTML it had to read.
It was my experience that making MOSS 2007 look and feel better was very difficult. Sometimes you would take a design and implement it in SharePoint, a very painful process. Then as you used the new design you would find that it worked okay for document libraries but not blogs or wikis. Since they shared Masterpages and CSS this could be a real problem. I hope this all improves with more master pages including simple master pages which are almost blank for developers to work with.
2. Silverlight, let me be clear here, Silverlight 4 is not up to Adobe Flash standards. If you are just looking for animations and interactions you should probably stay with Flash. But Silverlight's does allow you to create much more interactive, animated and gradated designs with ASP.NET. It also allows for rapid rich UI prototype development. Personally I don't think Silverlight will have a very long life with HTML 5 coming out, but it is there.
3. ASP.NET MVC. Now this one rocks, but it will take a long time to learn. ASP.NET Web Forms gave you great acceleration tools for creating web designs. In ASP if you want to display data you had to pass the data to a loop and have the loop write out a table or set of div tags to display the data. With ASP.NET you got the Data Grid. You could place a Data Grid on your web part of ASPX page and link it to a data source. It made things much easier. Thing is Data Grid rendered as a table. So you made a trade off. Generally time lines are too tight to abandon the Data Grid to make a better display by hand.
MVC is a new framework with ASP.NET 4. The concept is to allow you a more fine grained control over the HTML and XHTML you produce. It means a bit more work up front, but the UI experience is much richer.
Microsoft has clearly learned from Ruby on Rails and MVC is continually being compared to that framework. I have a strong concern that developers will stick with Web Forms, but if you want a AJAX based rich UI with clean XHTML code you should take the time to learn MVC.