Using Webmin / Virtualmin Pro on my CentOS 4.3 box, I was running into the issue of users not being able to change passwords.
The error message received was:
Incorrect old password
After some poking around, it looks like the method used for testing the old password is to use the UNIX Crypt() function.
I suspect this breaks on newer systems that are using MD5 to store passwords, rather than crypt.
The solution I used to get around this was to log in Webmin as root, go to System->Change Password, and go into the Module Config. I chose to have it run a custom command to change the password, and I just made that custom command "/bin/passwd".