Correcto, no es un problema de tu equipo. Es por cómo funcionan los caracteres: 's' y 'S' son diferentes. Que el código pueda contemplar a ambos como correctos dependerá de la estructura del código. Continuando con tu pregunta, te coloco un código que también funcionaría para 's'.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>¿Puedes conducir?</title>
</head>
<body>
<h3 align="center">¿Puedes conducir?</h3>
<script>
function saltarLinea() {
document.write("<br>");
}
function imprimir(frase) {
document.write(frase);
saltarLinea();
}
var edad = parseInt(prompt("¿Cuál es tu edad?"));
var tieneLicencia = prompt("¿Tienes licencia? Responde S o N");
if ((edad >= 18) && (tieneLicencia == "S" || tieneLicencia =="s")) { //En este caso la doble pleca "||" corresponde al operador lógico OR.
imprimir("Si puedes manejar, tienes màs de 18 años y licencia");
}
else {
imprimir("No puedes manejar");
}
</script>
</body>
</html>
Los operadores lógicos se usan para combinar dos valores booleanos. En este momento, basta con decir que '||' en este caso se utiliza para indicar que si cualquiera de las dos condiciones (tieneLicencia == 'S' o tieneLicencia == 's') es verdadera, entonces se ejecutará lo que se encuentra dentro de la estructura condicional 'if'.