Se non lo passi via POST o GET potrebbe anche funzionare... ma perche' usarlo se non e' ammesso? Domani una versione diversa di php o un diverso settaggio di non so che, potrebbero costringerti a rivedere lo script.

Magari windows e' tollerante e linux no.... come per i nomi di file. sinceramente io userei l'underscore al posto dello spazio. Lo stesso vale per i nomi di campo e di tabelle, per i caratteri accentati...

Se vuoi che il tuo script sia portabile tra i vari sistemi operativi e release segui le regole.... hai solo da guadagnarci tu.