Check out the answer to this StackExchange question. It restricts the extent but you could use the same method to restrict the zoom to a map cache level of detail.
It would be better if you could hook into the map zoom-start event and cancel the event if it exceeds your level of detail but I am not sure if this is possible.
This sample shows how to restrict the map to specified Levels of Detail (LOD)
Retrieving data ...