io seguo più o meno questo metodo, in realtà non faccio particolari verifiche, ma solo:

require(DIRECTORY.$action.".inc.php");

Se nella get mi mettono qualsiasi porcheria tipo "www.altrosito.com" non ho problemi (o fino ad ora almeno non ne ho avuti..
Ammettiamo che il tuo sito permetta l'upload di file da parte dell'utente. Con un codice come il tuo, sarebbe possibile hackerare il sito facilmente, è sufficiente caricare uno script PHP e poi passare un path tipo ../../../upload_folder/mio_file_php