Pavan is on the right track with the user type, but has been brought off-track by the profile parameter which would appear to most likely be the cause.
Instead of login/password_expiration_time, check your login/password_downwards_compatibility. I bet my hat on it that this is now set to value 1, but at the time of creating the user and setting its password, this parameter did not exist or was set to 5.
What this means for the user is that it has a usr02-bcode value (old hash) but not a corresponding usr02-passcode value (new hash). The difference is that (contrary to what the documentation in Rz11 implies) for users of type SYSTEM and SERVICE, there is a passive tolerance for compatibility built into the login program.
-> the hashing and comparing of the PASSCODE value fails, and then for SYSTEM type users it also hashes and compares to BCODE and if they match then the login is successful. This passive tolerance is however not done for DIALOG and COMMUNICATION type users.
So.. to prevent you from being forced to reset the password (which might be in several connection data...), you can simply change the user type to SYSTEM.
Cheers,
Julius