First, would the Map.SnapToLevels property help?
Otherwise, more generally, look at the Map.Resolution property, the ground size of map pixels. You could force it to a value thusly: "Setting the Map.MaximumResolution and the Map.MinimumResolution to the same value essentially locks the Map to a specific scale; meaning that you can only Pan around". Maybe Map.ZoomToResolution() would accomplish that too.
So use your Map.Width to find the Resolution at which it gives you the desired scale. I think you have to assume a DPI though. If I'm not too arithmetically challenged, and assuming a planar map:
(width/dpi)/(width*resolution)* = scale. Just flip that around to solve for Resolution.
*also including whatever units conversions from inches to map units.