Si, como dices basicamente es igual, pero que hace la funcion urlencode?
Existe la función urlencode y urldecode, en este código, lo que hago es mandar el error por GET para que en el archivo error.php podamos tener
echo "<h2>Error</h2>".addlashes($_GET['e']);
Entonces la función urlencode hace que se pasen los datos de una forma como decirlo.. como una url, sin espacios (son sustituidos por %20), con los acentos también sustituidos por %ALGO etc...