I just found a free program called Scid (“Shane’s Chess Information Database”).
With Scid you can maintain a database of chess games, search games by many criteria, view graphical trends, and produce printable reports on players and openings. You can also analyze games with the Xboard or UCI compatible chess program, and even use Scid to study endings with endgame tablebases.
There are many more features as well; the screenshots show just some of what Scid can do. With Scid you can also play against various engines, or on Internet (FICS). Scid also supports XFCC for server based Correspondence Chess at various sites.
I haven’t tried the program yet, but if anyone is working on memorizing chess boards / games, it might be useful…