How do I protect my circuit from getting more than 3.9V from a CR123 battery? With minimum components and minimum consumption during normal operation.
A CR123 is invariably a Lithium / Lithium Ion chemistry battery, which means nominal voltages of 3 Volts for the non-rechargeable Lithium cell, or 3.6 Volts for the rechargeable Li-Ion.
Thus, greater than 3.9 Volts is not going to happen unless the battery is a dangerously overcharged LI-Ion cell, and even then I'm not sure it is possible.
Given the above voltage limits, if one must be doubly sure and cover the unlikely case of an overcharged Li-Ion, a 3.6 to 3.7 Volt zener diode would work well as a shunt regulator to limit the voltage to within said nominal voltage:
R1 must be sized so as to not limit the current needed by the operating device - this can go to as little as 10 Ohms, since CR123A batteries from major manufacturers can typically handle quite a massive current draw anyway.
Even if the battery were to have been overcharged, the Zener diode's current draw will quickly bring the voltage down to nominal by discharging the battery down to Zener voltage.
CR123 is a lithium battery which is rated at 3V. A new battery with a light load may give 3.6V, very rarely 4V. You can limit the voltage to your circuit by using an LDO regulator. For 3.9V you'll have to pick an adjustable type since it's not a standard voltage. If the input voltage is greater than 3.9V it will regulate to 3.9V, if the voltage is lower, the output will be near the input voltage.
One way is to use a battery that inherently puts out only 3.9 V or less. Some common coin cells are limited to about 3.3 V, so that might be what you want.
If the voltage is higher and you can't do anything about that, then a LDO (Low Dropout Regulator) is probably what you want. However, that will have a little drop across it, even when the input voltage is below 3.9 V.
A better answer requires a better question.