Olá, Victor.
Seus ifs não estão acoplados, então se ele for maior de idade e tenha carteira, ele vai mostrar que pode dirigir, mas no fim vai mostrar erro porque ele pode dirigir, então ele cai no else.
<meta charset = "UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
}
var idade = parseInt(prompt("Qual é sua idade?"));
var temCarteira = prompt("Tem carteira? Responda S ou N COLOCAR EM MAIUSCULO");
if( idade >= 18 && temCarteira == "S" ) {
mostra("Pode dirigir")
} else {
if( idade < 18 ) {
mostra("você é menor de idade")
} else {
if( temCarteira == "N") {
mostra("você não pode dirigir")
} else {
mostra("ERRO!")
}
}
}
</script>