After being on the receiving stick of such situation I must declare:
Don't put your users in double-bind situations. It is mean, it is thoughtless, it is disrespectful!
Description of situation:
A prompt while opening a client solution (yes developed on your favorite platform).
There is an upgrade blah bla.
Then, underneath the message:
__A check box: Don't warn me about new versions again
__Two buttons: See what's new and the other one, Cancel
The problem with that:
I don't want to see what's new, I don't want to cancel my choice (check box)
Buttons should be See what's new (if not binding), Upgrade (if binding) and No, thank you (to decline upgrading)
Cancel introduces a double-bind in that context.
The disruption might be voluntary from marketers, but is a real irritant for users especially power users in the midst of doing something because if they check the box they darn well mean it and having to pause and think because of the nasty choices isn't very nice; these people need to reserve brain power for mission critical decisions, not being destabilized while doing a repeating task (opening an app) that they should be doing without thinking.
What such example of poor app-user communication have you encountered as a user or a developer?