I've been looking at this for a while and there really isn't a good solution, in my opinion. So, inspired by a Bruce Schneier post about writing down passwords, my solution is to keep site passwords in a bcrypt encrypted text file, which I print from time to time.
(I chose bcrypt because it works in the command line, which I favor, and it runs in Linux, BSD, or Windows. I would have chosen scrypt but there isn't a Windows binary for it yet.)