For several online accounts, I am using a cryptographic hash of [the site name] + [a secret phrase] to generate the password.
Also, if I wanted this to work with multiple accounts on a single website, I would have to include [account name] in the input to the hash function.
On the plus side, all this brain-damage does seem fairly easy to incorporate into an automatic scheme. Have another file that has a list of cutoff lengths for each site that has them, and another file with special characters to insert. Then the scheme becomes: hash [domain] + [secret] + [resets (if any)], add special characters to the start (if any), and cut off the end of the string (if necessary).