It's worthwhile to note that what you see in QGIS on the screen map canvas depends on all of
The specified scale
The size, in pixels, of the map canvas window
The screen "logical DPI" (dots per inch)
In particular, QGIS uses this logical DPI (#3) to convert the size in #2 to a nominal assumed size of the canvas (in cm/whatever), and then the scale factor to determine how many map units make up one pixel.
If your users are seeing different images, and you have forced #1 (the scale) to be the same, one of #2 or #3 is different. The one which is most likely to be "surprising" is #3, especially since the "logical DPI" may not actually be the same as the actual "physical DPI" of each user's screen. In particular, on modern laptops, the actual physical DPI may well be 150 or more, but (in windows) the logical dpi will be 96, 120, 144, or rarely 168 or 192 depending on how the user has set the magnification factor for the UI in Windows' system settings. For more details, see Correcting canvas DPI in QGIS Windows
In your context, you will have to decide whether you want "same" to mean "same actual physical scale, as if the screen were a sheet of paper", "same number of map units per pixel", or "same width in map units of map canvas, irrespective of each user's actual screen size". Then you can correct what is being shown by using the following PyQGIS iface.mapCanvas().setMagnificationFactor(...)
command.
To determine the factor you want, based on your choice above, you may query targetDpi/iface.mainWindow().logicalDpiX()
and .physicalDpiX()
for the respective values and use their ratio, or the ratio of a fixed target number to logicalDpiX
for instance.