Se debe al juego de caracteres.
En HTML debes indicar qué juego de caracteres se debe emplear para leer la web. El navegador, cuando encuentra esa etiqueta, se adapta sólo a dicho juego de caracteres.
En castellano, el típico es ISO-8859-1 aunque ya se recomienda usar UTF-8, pero eso implica que debes tener cuidado en la codificación si escribes directamente en HTML.
Código:
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type" />
Otro tema es que puedes usar entidades HTML.
Así, la Ñ se muestra como Ñ
y la ñ se muestra como ñ
Un saludo,
eContento