Right. Check what user and group your apache server is running under and check that is has permissions to execute htpasswd.
Typically, for security reasons, apache is run as "nobody".
By allowing apache to execute htpasswd, you have inadvertently given all users on the server a way to add themselves to your secure site.
For instance, If you are able to create a web page in your home directory - /home/me/public_html/
Then you could write a php script that runs the htpasswd app even if you have no personal access to it.
--brian