Hallo!
Und was hat dein Uploadscript mit system() oder exec() zu tun?
Spontan fallen mir die Stichworte safe_mode, safe_mode_exec_dir und evtl. auch disable_functions ein.
Hast Du überhaupt Zugriff auf die php.ini?
Gibt es beim Dateiupload Fehlermeldungen?
Evtl. könnte es hier schon langen wenn Du das Zielverzeichnis auf CHMOD 0777 setzt.
Und zu dem "warum das so ist":
Da Du dir die Frage ja nicht selbst beantworten kannst, gehe ich davon aus dass Du nur Webspace hast.
Deine "klägliche" Beschreibung lässt mich daher vermuten dass dein Hoster seine Sicherheitseinstellungen erhöht hat.
Zumindest bei dem system() und exec() wirst Du, wenn der Admin seine Hausaufgaben gemacht hat, nichts dran ändern können..... sonst könnte er sich die Arbeit ja gleich sparen.
Selbst wenn Du noch irgend ein Weg finden solltest, wird der Admin diese Lücke über kurz oder lang auch schliessen.
Du könntest zwar den Hoster wechseln, aber auch bei dem musst Du jeden Tag mit den gleichen Problemen rechnen..... so langsam fangen die Hoster alle an Rücksicht auf die Sicherheit ihrer Kunden und des Servers zu nehmen.
Aus dem Satz ergibt sich auch dass Du mit einem Root-Server zwar deine Probleme umgehen könntest, dieses aber zu lasten der Sicherheit geht.
Du solltest dir also eher überlegen, welche Funktionen Du überhaupt brauchst und dazu die Anmerkungen auf php.net lesen.
Gruss Dr Dau