El principal con el que he visto problemas recientemente ha sido ps en Solaris (10), corta los caracteres noveno +, por lo que, por ejemplo, si necesita buscar el nombre de usuario, no coincidiría.
$ sudo -u longusername ps -fu longusername
UID PID PPID C STIME TTY TIME CMD
longuser 14012 11985 0 09:58:39 pts/2 0:00 ps -fu longusername
Si hace un ls -l en un directorio con archivos que pertenecen a ese usuario, las columnas se desalinean.
$ ls -ld /export/home/l*
drwxr-xr-x 2 lauser users 6 Mar 23 10:21 /export/home/lzuser
drwxr-xr-x 2 longusername users 6 May 4 10:02 /export/home/longusername
drwxr-xr-x 2 lzuser users 6 Mar 12 11:21 /export/home/lzuser
Básicamente, debe tener cuidado con cualquier herramienta que se ocupe de nombres de inicio de sesión y no solo con UID. Eso podría incluir cosas que leen o escriben en archivos de registro o bases de datos, o utilizan la salida de herramientas como last, who, finger, ls, ps, etc.
Un rápido Google apareció en esta página:
http://fixunix.com/sun/113647-username-lenght-more-then-8-characters.html
Lo que agrega algunas razones más.
Con respecto a las mejores prácticas para la creación de nombres de usuario, también puede haber complicaciones al usar inicios de sesión en mayúsculas en lugar de minúsculas, por lo que también debe evitarse.
Cuando algunos sistemas (más antiguos), cuando ven un inicio de sesión solo en mayúsculas, de manera útil por defecto asumen que el terminal del usuario no admite minúsculas, por lo tanto, configure TODO para que esté en mayúsculas (lo que puede evitar ingresar la contraseña y poder escribir ¡Comandos de Unix una vez que inicies sesión!)
Editar (16/04/2019):
Acabo de notar en RHEL 7.5, que la salida de ps tampoco funciona bien:
$ ps -fulongusername
UID PID PPID C STIME TTY TIME CMD
longuse+ 1230 27243 0 Apr13 pts/0 00:00:00 vim somescript.sh
longuse+ 1701 27243 0 Apr05 pts/0 00:00:00 vim another-script.sh
longuse+ 3116 27243 0 Apr12 pts/0 00:00:01 vim test_script.sh
Trunca el nombre de usuario con un '+', lo que no es útil si no está familiarizado con el usuario que será y significa que no puede confiar en la salida de ps, por ejemplo, como entrada a un script que necesita saber quién Posee un proceso.