buenas
el arhcivo que contendra los includes (o cualquier otra cosa en php) debera tener la extension .php (index.php, portal.php, home.php, etc...), los demas archivos que se incluiran no necesariamente tienen que tener esa extension (incluso pueden ser .txt con los codigos html).
Lo que hace el include es que incluye de manera directa el contenido del archivo, sin importar su extension pasa a formar parte del archivo que lo incluye.
Por eso si vas a incluir el archivo menu.htm en index.php, el archivo del menu solo debera contener el codigo del menu, por ejemplo:
Código HTML:
<ul><li>Inicio</li>
<li>Foros</li>
<li>Etc</li></ul>
Ya que si pones tambien las etiquetas de <html>, <head>, <body> y el archivo index.php tambien las tiene al final obtendras un codigo con etiquetas repetidas (al probar tu archivo en un navegador ya con el include podras darte cuenta al mirar el codigo fuente).
Recuerda, lo que vas a hacer con include es sustituir codigo, asi que en tus archivos a incluir solo debe estar el codigo que se sustituye en el archivo principal... Espero se entienda jeje no soy muy bueno explicando, pero cualquier duda que tengas tratare de responderla