When a MicroLogix or SLC-500 controller boots up, it checks for the presence of a memory module and reads the EEPROM options from the program stored on the module.
Specifically, the MicroLogix checks the settings for S:1/10 (Load Memory Module on Memory Error) and S:1/11 (Load Memory Module Always).
Both of these functions require that the memory module get installed and stay installed, so you would need one memory module per MicroLogix 1100 in the field. You would install the module in a bench-test controller, set the options, save to the memory module, then ship each memory module to the field. If the controllers really are "out of the box", you could use S:1/10 and the controllers would load the program just once.
The MicroLogix 1100 also has a little LCD screen and function keys, so you can do a little bit more with it. You could create a Memory Module on your bench but leave both S:1/10 and S:1/11 at zero.
When you send the memory module out into the field, you can install it and use the keypad and LCD screen to command the controller to load from the memory module. The program will then be retained in the controller and you can move the memory module on to the next controller, and the next, and the next. You can even remove the memory module with the power on.
If a controller failed in the future, you would have to do the same process. The remoteness of your controllers and the odds that they will need updates individually in the future will help you decide whether to spend the money on Memory Modules for each one, or to move one memory module around and trust the onboard battery to retain power.
Directions on using the LCD and the "Advanced Config" menu to load/store from the Memory Module are in the MicroLogix user manual.
I think Memory Modules are very cheap insurance, especially for very remote controllers.