PCGen assumes it can write to the directory it was installed into. This is not a good assumption for the majority of operating systems in use today. On Windows, the installer drops the data in %PROGRAMFILES(x86)%, which is what Microsoft recommends, but PCGen is then unable to modify data in its installation directory on any system where the user is not running with Administrator privileges (which is most corporate environments (heh), and effectively all machines running Windows Vista or Windows 7.
Here, if PCGen's installer defaulted to installing to the user's home directory, that wouldn't a problem. (Though it would raise the problem of dropping references to one user's home directory across all users' start menus, etc.)
On Linux, where pcgen gets packaged by different distro maintainers, it gets similarly placed in a directory only writable by administrators. Just as similarly to Windows Vista and Windows 7, this fails whenever PCGen decides to modify anything under its own path. On Linux, it's even more problematic, because people look to system packages to install pcgen before they get to the web site and discover they have to install manually in their home directory.
The ideal solution to this would be for PCGen to allow data stored in the user's personal data store (%APPDATA% on Windows, $HOME on Linux) to override or mask data found under PCGen's installation directory. This would put PCGen in-line with the behavior of the vast majority of other applications developed for these two platforms, and would significantly improve its user experience.
Windows, Linux (possibly others)