Asp.NET 2.0, se setti nel web.config la proprietà xhtmlconformace="strict" genera un output compatibile con gli standard. Poi se c'è qualche bug è un altro paio di maniche.

Se invece lavori in .NET 1.1 lascia perdere, per avere un output valido dovresti fare l'override del render di quasi tutti i controlli, più altri trucchetti vari.