For starters, your app should open to a menu and all interaction with users should be via that menu. Users only see Forms and Reports. Users should NEVER, EVER even see the navigation pane.
As the others have said, this position is difficult to enforce but if you never show people these things, they won't go poking around. Also, if you use one of the suggested distribution methods that distributes a new copy of the FE each time the app opens, anything that gets broken will get fixed simply by closing and reopening the app.
Even an .accde can be renamed to .accdr and I do that also. The idea of the .accdr extension is that it tells Access to pretend to be the runtime engine so Access will never allow the user to see any object in design view as long as the db has .accdr as its extension. Of course a savvy user can simply rename the FE to have an .accdb extension and they're back in business but shush, don't tell anyone