Suponho que a configuração seja por usuário. Em primeiro lugar, sugiro que você escreva uma classe wrapper que acessará a configuração. Dessa forma, você só pode alterar o núcleo da configuração em uma classe e não em todo o código.
class configuration {
public function get_user_configuration() {
// return users configuration
}
}
Acho que seria mais fácil armazenar a configuração no banco de dados. Porque então a configuração provavelmente será copiada diariamente e pode ser facilmente exportada.
O armazenamento em cache dessa configuração é uma boa ideia. A maneira mais fácil seria armazená-lo em cache na sessão. Você também pode tentar memcache ou APC.