Métodos para determinar diretórios de configuração na instalação de programas? (Desktop)

Gostaria de saber quais estratégias são usadas para criar instalações de programas Java Desktop.

Já aprendi algumas:

  • A salvar arquivos de configuração do usuário usando a propriedade de sistema user.home;
  • A salvar arquivos temporários na pasta indicada pela propriedade java.io.tmpdir.

No entanto, prestando mais atenção em alguns programas, percebi que pelos instaladores, o usuário pode especificar a pasta onde irá salvar o programa e os arquivos de configuração podem vir embutidos na mesma pasta…
Gostaria de saber quais estratégias são usadas para o programa reconhecer a pasta com as configurações, além das que eu já conheço… Isso é feito dinamicamente na instalação? Existem outros métodos?