Hola!
Me he mirado el código y veo algo medio extraño

, en la función que pusiste al último:
Código:
<?php
function modulos($sec)
{
global $sec;
switch($sec)
{
default:
include("principal.php");
break;
case 'descargas':
include("descargas.php");
break;
}
}
?>
Tienes tanto una referencia a un variable global y también tienes otra variable local con el mismo nombre, eso puede estar causando un conflicto en tu switch al no saber a cual te refieres.
Un saludo y suerte!