We have a few plugins for password change using different methods for saving new password, but all of them have the same UI. I think it would be better for localization and future maintenance to join them into one plugin with many drivers. We need one function for password change, so we can do this as simple as possible. Let's add drivers/ directory with files sql.php, sasl.php, etc. and config option 'password_driver'. So, everyone just could add his own driver function.
My second idea is to create hooks for rcube_user's email2user and user2email functions. Then we could move current virtuser_* features into 'virtuser' plugin. This plugin should also work as password above with drivers for file, sql, or any callback.