Coloque as diretivas de autenticação em uma diretiva Location
separada, assim:
<IfModule mod_userdir.c>
<Location ~ "/~.*">
AuthType Basic
AuthName Private
Authuserfile /etc/apache2/.htpasswd
Require valid-user
</Location>
</IfModule>
Isso ativará a autenticação de senha para todos os caminhos que começam com "/ ~".