al validador del w3c lo que le importa es el HTML. Osea, no le importa si ese html lo incluyas mediante php, asp o lo escribas directo... lo que importa es el html final que validas.
Si tu tenes una página así:
Cita: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ....
blablabla
<?php include(menu.php); ?>
y después en el archivo menu.php tenés de nuevo el doctype, etc.. cuando lo incluyas y mires el código html resultante del archivo a validar, te vas a dar cuenta que te va a quedar con 2 doctypes, y eso no se puede.
Recordá que TODO lo que este en el archivo a incluir se translada a la página que lo incluye