What is the best acknowledge UI? Ie. confirmation by the user.
1) A simple checkbox on a form
2) A pop-up with a message and OK/Cancel buttons
If they have to acknowledge something, the only option is a modal dialog with an OK/Accept button.
If they have to agree with something to continue, then there should be a Cancel button.
Actually, buttons should have meaningful text on them, not just OK/Cancel.
Short answer: "Command Links"
IMO, in many situations, OK/Cancel or Yes/No are very bad.
Because users have a fixed path in mind. They want to get from A to B. Users also don't like reading the text in dialog boxes. Put these two factors together and you'll often get users responding Yes, Yes, Yes to a series of questions. If one of these questions is "so you want to abort the current operation", they'll still instinctively click 'yes'.
I have a perfect example in Microsoft Visual Studio. When debugging an app, and you want to stop debugging, yes are prompted with "Are you sure you wish to stop debugging?" Yes/No. Next you are prompted with "Do you want to save the current environment" - to which you should say 'No'. Clicking yes takes you to a step you didn't want, wastes time, and results in swearing at the screen.
The better UI for these dialogs would be to leave the long description for the small percentage of users who need the reassurance of a proper explanation, but then put the core of the question onto the control itself. So for my Visual Studio example, your button text would say...
"Stop Debugging" / "Cancel"
The problems with this are:
Microsoft have seen the light and introduced 'Command links' which solve exactly this kind of problem. They wrap a snappy summary, and a longer description with the clickable control. It makes a lot more sense than "Long winded question" with Yes/No buttons a mile away. http://msdn.microsoft.com/en-us/library/aa511455.aspx
I realise this question has been answered, but hope it helps someone
Most users learn to click whatever you wAnt without reading anything. They assume you have nothing important to ask. If you want them to really think about the question, you need to be thoughtful and creative about the way you ask. Remember, all the user sees is "blah blah blah blah...OK? Cancel?"
Certainly not the best for all situations (see jezmck's answer), but something interesting I saw a while ago is Licorize's delete button. When you click it, the button is replaced inline with delete? yes / no. It managed to be obvious but unobtrusive at the same time. I'd want to test it on the target audience, though.