los archivos los vas a tener que tocar, tal como explicas el problema. en otros lenguajes te va a pasar lo mismo redeclarando funciones.
puedes usar function_exists para saber si ya se a definido.
Cita: con el header location no se puede hacer algo del estilo target="_blank"?
el comportamiento del navegador no es entorno de php, para hacerte una idea imagina que php escribe el fichero y lo envia al navegador, una vez enviado el navegador es el responsable de interpretar el codigo html,css,js etc.
Código:
if(!function_exists("algo"))
{
include "fichero_con_la_funcion.php";
}