It seems that if shadow is installed, it is configured (via the default version of /etc/login.defs) to use DES encryption, which means only the first 8 characters of passwords are actually used. It seems that all that is necessary to do to fix this is to set ENCRYPT_METHOD in /etc/login.defs to some other value (e.g. MD5). Given that this 8-character limit is not present if your image doesn't have shadow installed and therefore uses busybox's version of passwd/login, we should probably change our default configuration of shadow unless there is a good reason not to.
Fix merged to master: http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=68fbbd1008a76d78c7cef141dc06696d27fe2d0c