Co to znamená nefunguje? Nějaké detaily?
Obsahuje cesta k htpasswd.exe mezery? Tak dej cestu do uvozovek a celý příkaz command do apostrofů. Máš nastaveny pro htpasswd.exe práva na spouštění? Nejsou ve jménu nebo heslu nějaké speciální znaky? Pokud ano, escapuj je pomocí $jmeno = shellescapearg($jmeno);. Jak máš nastaven safe_mode? - i v tom může být zakopaná sobaka.