Hi Jon,
Personally, I think ‘container’, although not incorrect, is a bit vague and incomplete, and (in my experience) tends to give people a lot of trouble understanding what’s going on…
Here’s an other explanation:
Each Object (talking Meshes here, but it is true for some other types as well)) has its own 3 dimensional, orthogonal Coordinate System. In order to distinguish between different Objects, we give them different names (like variables).
There are also ‘lists’ of Object Data, that contain information like the Position of Vertices.
Different Objects can share (part of) such ‘list’.
When you Move an Object in Object Mode, you Move its Coordinate System (in the 3D World); you do not make any adjustments to the ‘list’. That is very handy, because now 2 or more Objects, that share a ‘list’, can be in different Locations.
The same applies for Rotating and Scaling in Object Mode; you do not change the Vertices’ listed Positions.
If you Scale an Object in Object Mode, you Scale its Coordinate System and if you Scale (in Object Mode) in X, you Scale the X-Axis of the Object’s Coordinate Sytem.

A Modifier calculates a new list, based on the existing list and keeps that original list, so if you make a change in Edit Mode, you change the original list and thereby also the Modified list.
The really cool thing is, that you can have different Modifiers for different Objects, even if they share Object Data. So we can do this:
