Não tenho certeza se 100% entendeu sua pergunta, mas suponho que você esteja solicitando dois domínios diferentes em que cada um deles use um UserDir diferente.
EDITAR : você estava no caminho certo. A única coisa que você perdeu, é que você precisava colocar cada uma das duas configurações UserDir em suas respectivas configurações do VirtualHost, como visto abaixo.
Para isso, você precisa criar dois hosts virtuais e cada host virtual teria suas próprias configurações UserDir.
O primeiro host virtual conteria o seguinte:
# /etc/apache2/sites-available/com.sample.www.conf
<VirtualHost *:80>
ServerName www.sample.com
<IfModule mod_userdir.c>
UserDir public_html
UserDir disabled root
<Directory /home/*/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Require all granted
</Limit>
<LimitExcept GET POST OPTIONS>
Require all denied
</LimitExcept>
</Directory>
</IfModule>
</VirtualHost>
O segundo host virtual conteria o seguinte:
# /etc/apache2/sites-available/com.sample.www2.conf
<VirtualHost *:80>
ServerName www2.sample.com
UserDir public_html2
<IfModule mod_userdir.c>
UserDir disabled root
<Directory /home/*/public_html2>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS>
Require all granted
</Limit>
<LimitExcept GET POST OPTIONS>
Require all denied
</LimitExcept>
</Directory>
</IfModule>
</VirtualHost>
Uma vez feito isso, você precisa ativar os 2 arquivos de configuração do host virtual e reiniciar o Apache.
$ sude a2dissite 000-default.conf
$ sudo a2ensite com.sample.www.conf
$ sudo a2ensite com.sample.www2.conf
$ sudo apache2ctl restart
Agora, quando você abrir www.sample.com/~dan/
, usará /home/dan/public_html/
e quando você abrir www2.sample.com/~dan/
, usará /home/dan/public_html2/