eheheh se cerchi sul forum trovi svariati post a riguardo :9
cmq si basa tutto su un principio semplice...tramite url ti deve venir passato un modulo da caricare ed avviare...per maggiore sicurezza, quando devo fare le cose modulari "veloci" faccio una struttura abbastanza semplice...ovvero
metto tutti i file in una data directory, verifico che il modulo richiesto con il prefisso e suffisso, aggiunto alla directory nella quale sono presenti i moduli e verifico se quella dir si riferisce a quella... (lo so sembra ostrogoto...faccio un esemoio)
se hai tutti i moduli dentro la cartella modules nella root del sito...e io passo nell'url
index.php?page=../index.php
scoppierebbe tutto 
perché non verrebbe richiamato
modules/index.php ma modules/../index.php che a sua volta lo richiamerebbe a vita dato che cercando il parametro page partirebbe di nuovo il load del modulo e cosi via... 
quindi il check sulla dir è d'obbligo...inoltre ti consiglio di mettere suffisso e prefisso cosi non possono richiamare tutti i file che vogliono ma solo file che hanno una data nomenclatura
ad es il moduli li potresti chiamare
module.NOME.php

e un'ultima cosa...non mettere "direttamente" il codice nel modulo, ovvero quando requiri il modulo...il modulo non deve contenere direttamente il codice ma una funzione che richiamata fa il tutto 
ovvero...dal codice dell'index fai...
codice:
.
.
.
require_once($module_path);
$content = module_main(....PARAMETRI...);
.
.
.
e nel modulo metti
codice:
<?php
.
.
.
function module_main(....PARAMETRI....) {
.
.
.
return $content;
}
?>
e nell'index stampi a video $content, in questo modo hai un po di sicurezza e non possono richiamare direttamente i moduli e quindi eviti tanti rischi e problemi