The problem was that the following line of code in Web.config:
The xmlns property appears to be inserted every time the Web Site Administration Tool is used. Anyway, I did some digging around and found an answer posted by Massimo Prota in the comments section of Scott Guthrie's blog post about the same problem. Here's what Massimo suggests:
1. Open the folder %windir% \ Microsoft.NET \ Framework \ v2.0.50727 \ ASP.NETWebAdminFiles \ App_Code.
2. In the above folder, open WebAdminPage.cs and in the SaveConfig method (line 93), change the value of config.NamespaceDeclared to false.
UPDATE - Massimo's suggestion didn't fix the problem for me: the xmlns property is still added to my Web.config every time I change something in the IIS Website Name > Properties > ASP.NET > Edit Configuration screen. However, if anybody finds that it does work for them under Windows Server 2003, please let me know...