Sadly, the fact remains that users don't read dialog boxes[1]. If you want to make a computing "appliance" that is not going to be subject to attack, you'll have to disallow owner-administrators and software installations altogether.
I think dialog boxes are simply mismatched to the WIMP paradigm: the user expects to be able to click, navigate, and explore a problem space, when suddenly you're confronting them with a decision that, once made, disappears and cannot be re-made a different way: the antithesis of explorability.
If, instead of indivual windows, there were some central "conversation window" where the computer would ask you questions, then leave both the question and answer available for viewing and correction, things might improve. In fact, more things could be presented to the user as "beneficial, but not necessary" decisions to make (changing preferences from their defaults, etc.) This scheme reminds me of SimCity's Advisors window, oddly enough, and also bears a similarity to Windows 7's Action Center.
The biggest difference is that every decision would now need a "safe postponement default", in case you don't "check your messages." In the elevation case, programs would have to be rewritten to not expect to be elevated as soon as they ask for it, but rather try to do whatever possible with the priveleges they have, and then queue up a list of things to do if/when they get elevated (which may never happen.) for instance, under this scheme, Installers would always install to a user-writable location, then queue a move operation for post-elevation.
The 20% that takes 80% of the work, in this case, is figuring put what to do when the user works outside of the elevation framework: what to do when you move the folder the program was waiting to move, or what to display in the conversation transcript when you change a preference in the Preferences window that you originally chose in the context of a Conversation.f
[1] http://www.joelonsoftware.com/uibook/fog0000000249.html