In many (and almost all UNIX) Operating systems, the : is the field seperator for the next frame of the file.
So if you create an ID : bob
and set a password mon:key
Put him in as user 200 in group 1000
His file looks like so :
bob:mon:key:200:1000::/bin/ksh
So, since the algorithm reading passwords is looking based upon colon's and expects the password to be the second field, it breaks the algorithm and just returns "mon"
-Kanth