*.accde is mostly what I do when I need to protect the design. As Seth pointed out, and I cannot stress enough, make sure you keep a copy of the "development" database. We had an instance where someone "accidently" created the executable version using the only copy of the front-end database... and of course, years later changes needed to be done. Had to rebuild everything from scratch.
+ The downfall of the runtime environment is two fold in that you have to create all of the menus that you want the user to have AND all of your code must have proper error handling. While the latter is something that should be done as good coding practice, the former has become more difficult for the beginning to intermediate programmer with the advent of the "Ribbon" to replace the old menu/command-bars. The executable is a nice compromise with protecting the main interface as well as allowing the user to interact with the common Ribbon tools.