Si, la verdad que es un tratamiento poco intuitivo que hace PHP de las cadenas.
La letra "ñ", "ç" y todos los caracteres que tengan cualquier acentuación (tildes de cualquier tipo), si los tratas con funciones de cadena normales te dan problemas. Tienes que usar las Funciones de cadenas de caracteres multibyte.
Si estás tratando con cadenas con tildes sería bueno que usases las mismas funciones de cadena de PHP, pero con el prefijo "mb"
echo mb_strlen('uña') // muestra 3
echo mb_strlen('á') // muestra 1