If you use ASP.Net controls like the menu controls in your MOSS Internet sites these will be rendered using tables. To make the controls nice and accessible you can try using the css adapters found here -

I have a requirement to add several pages to a WCM enabled MOSS 2007 site programatically. To do this I needed to add page items to the pages list in the WCM site. To access the pages list you need to first get hold of the relevant site and cast it to a PublishingWeb. Once that has been done the content type is found and the page layout is chosen. At that point the page can be created, have values assigned to it and even be published and approved programatically.

Thread sleep is there in case you are adding many pages at once as this causes problems for the variations job and only the first page added is propagated. By adding a sleep the pages are added more slowly and the variation job works as expected!

With the addition of Windows Workflow Foundation in SharePoint 2007 the possibilities for the way lists are used in business processes are huge! With the inclusion of the friendly interface to create workflows in SharePoint designer it is amazingly easy to add custom workflows.

One of the most common requests I get is for a list item to be routed by email to a particular person based on one of the item values. Eg. If an item has the country field set to UK send an email to John Smith but if the country field is set to USA then send an email to Chuck Saltman. This is now extremely easy using the conditional workflows but it took a bit of fiddling about with the fields in the body of the email to produce a link to the current item.

I have recently been looking at using the SQL 2005 XML column to store data that will eventually be used to create web pages in MOSS 2007. The first issue I faced was how to get the XML out of the column!

The first attempt involved reading it out as a string and using the System.Xml namespace in C# to manipulate the string, get nodes etc. I felt like there must be a better way and eventually came across the following article on XQuery: