I've seen some FPSes get the player's preferred control mappings in a really subtle, cool way: ask the player to perform some actions very early in the game (often as part of a "training" sequence), and configure the controls however necessary to make the user's input correct.
For instance, in Portal 2, to check whether the player wants inverted controls: