let me see if i get what you mean...you have one external IP and want to host multiple domains behind a router? right?
i dont see what so hard about this...apache can do name based virtual servers out of the box and its a piece of cake to setup. here is an example of what the conf file would look like:
NameVirtualHost 192.168.0.100 <--- Internal IP of where apache is sitting
<VirtualHost mydomain0.com>
ServerAdmin
webmaster@mydomain0.com
DocumentRoot /opt/apache/htdocs/mydomain0/
ServerName mydomain0.com
ErrorLog logs/www.mydomain0.com-error_log
CustomLog logs/www.mydomain0.com-access_log common
</VirtualHost>
<VirtualHost mydomain1.com>
ServerAdmin
webmaster@mydomain1.com
DocumentRoot /home/devel/test/apache/htdocs/mydomain1/
ServerName mydomain1.com
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>
<VirtualHost mydomain2.com>
ServerAdmin
webmaster@mydomain2.com
DocumentRoot /opt/apache/htdocs/mydomain2/
ServerName mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>
You could use some redirection to send one of these domains to another box.