Sí, tenés razón. Estaba seguro de que había un mail de contacto, pero o lo soñé, o lo quitó.
 
Bueno, antes de que venga, vamos a ver un poco lo tuyo. 
El código queda entendible entre etiquetas 
[code] o similares. Tenelo en cuenta para la próxima.
Y cuando digo "comparar", es entre la versión que no anda y la que anda, que podés ver con cualquier consola de navegador.  
Código:
 <html>
<head>
<title>Controlar palabras largas</title>
<script language="Javascript">
function pepe(texto2,donde)
{
pLink = /^\[url[=]?[\w\*":.\/]*\][\w\*":.\/\[\]]+\[\/url\]$/
pImagen = /^\[img?(=left)?(=right)?\][\w:".\/]*\[\/img(=left)?(=right)?\]$/
pUrl = /^https?:\/\/[\w\.]+/
pCodigo = /^<[\w\.\"\'\$\(\)\= #\?&%@\[\]\;]+>$/
pCodigo2 = /="[\w\.:\/\-"\+\=\?\&\#%@\$'\(\)\[\]\;]+"/
pMail = /^[\w\_\.çñ]{2,255}@[\w]{2,255}\.[a-z]{1,3}\.?[a-z]{0,3}$/
var palabrota = 10
palabras = texto2.split(/\s/)
largo = palabras.length
for(m=0;m<largo;m++)
	{
	if(palabras[m].length > palabrota)
		{
		if (pLink.test(palabras[m]))
			{continue}
		if (pImagen.test(palabras[m]))
			{continue}
		if (pUrl.test(palabras[m]))
			{continue}
		if (pCodigo.test(palabras[m]))
			{continue}
		if (pCodigo2.test(palabras[m]))
			{continue}
		if (pMail.test(palabras[m]))
			{continue}
			texto3=palabras[m].substr(0,palabrota)+" "
		for(h=palabrota;h<palabras[m].length;h+=palabrota)
			{
			texto3+=palabras[m].substr(h,palabrota)
			}
		texto2=texto2.replace(palabras[m],texto3)
		donde.value=texto2
		pepe(texto2,donde)
		//*************************************************	
		}
	}
}
</script>
<style type="text/css">
</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<body>
<form name="formu">
  <div align="center">
    <textarea  onBlur="pepe(this.value,this)" name="mensaje" cols="45" rows="6"></textarea>
  </div>
</form>
</body>
</html>
  No pongo los créditos, porque ya sabemos de quién es.
Vos sí ponelos.