There is a technique called password hashing that describes creating unique passwords based on a unique master key and a static and arbitrary hash value.
Using this technique, the user only has to remember the master key to have a unique password for every site/application.
There are many free programs, sites, and browser extensions that implement this system. A very simple example is this one.
This technique appears useful, but there is a common case that it does not seem to handle well. That case is when the user has to change the password for a site (due to a reported security breach or a forced change due to time duration). Once the user change that password, it will no conform to the hash system.
The only solution I can think of is for users to change the master key in order to generate a new password, but then all their other passwords will not work with that new master key. So now they have to remember which sites use which master key, which is almost as bad as having them remember different passwords.
Does anyone have a solution for handling this common case?