La verdad no tenia ni idea que el replace de javascript sea tan malo

... el de PHP te cambia todos.
Bueno despues de investigar llegue a la conclusion de que esto tiene que funcionar

:
a la funcion de la primer pagina pone:
Código PHP:
<script language=javascript>
function ventanaSecundaria (URL){
while (URL.search("#") != -1) {
URL = URL.replace("#",":numeral:");
}
while (URL.search(" ") != -1) {
URL = URL.replace(" ",":espacio:");
}
while (URL.search("\"") != -1) {
URL = URL.replace("\"",":comillas:");
}
window.open(URL,"ventanita","scrollbars=NO, resizable=NO, width=281, height=392, top=150, left=350")
}
</script>
en la segunda donde recoges la variable pone
Código PHP:
<?
$tabla = str_replace(":numeral:", "#", $_GET["tabla"]);
$tabla = str_replace(":espacio:", " ", $tabla);
$tabla = str_replace(":comillas:", "'", $tabla);
?>
<input type="hidden" name="tabla" value="<?=$tabla?>">
y en la que mandas el mail pone:
Código PHP:
$tabla = str_replace("\\", "", $_POST["tabla"]);
$cuerpo= "<html><head></head><body> <p align='center'>Mensaje adicional de ".$emisor." <br>".$_POST['mensajeadicional']."</p><br><br><br><p align='center'>".$tabla."</p></body></html>";
$headers="Content-type:text/html\n, FROM: ".$emisor;
//acordate que la variable cuerpo yo no la tengo igual que vos, o no estoy seguro... asi que lo que tenes que hacer es agregar la primer linea ($tabla =$_P.....) y en la variable cuerpo cambiar $_POST["tabla"] por $tabla