Hola,
Los links son interpretados por el navegador. El navegador no tiene ni idea si el codigo HTML que recibe es de includes o no. Asi que lo que el navegador hace cuando pinchas en el link
<a href="frame.php?link=http://www.dominio.com" target="_blank">web</a>
es coger la URL que tiene en la barra de direcciones
* (en tu caso algo como
http://localhost/php/index.php), quita la pagina y concatena con el valor de href:
http://localhost/php/frame.php?link=...ww.dominio.com
Lo que ya no entiendo que no te salga si has generado
href="modulos/links/frame.php?link=http://www.dominio.com"
en el HTML. Revisa que es eso lo que te ha generado. Es mas, prueba a poner ese link a mano.
De todas formas, no me parece que sea un fallo de PHP. Mas bien debe ser un problema del HTML.
Saludos.
* A no ser que exista un tag <base> en el <head>.