Chrome does this pretty well; it quietly shows a little up arrow icon over the "menu" icon (oddly I couldn't find an image of this). When you click the "update" icon it lets you know you should restart Chrome to let it update. If you naturally close Chrome at any point it will (very quietly and quickly) update.
Since updates generally aren't so important that they need to be imminently installed this seems like a perfectly acceptable solution; the one problem with this is that, as Chrome has implemented it, there's no "opt out". As long as you do your updates rate, that's not necessarily a bad thing however. Adapting Chrome's method to something that prompts every time (but why) would take some work, since you can't easily just show a pop up when restarting/shutting down the computer (I often do this immediately before leaving my desk, I'd never see this pop up in many cases). A pop up that shows after the computer restarts would surely be seen, but it still has the problem of interrupting workflow; suddenly instead of doing whatever I turned my computer on to do I have to respond to this pop up.
Steam almost has a good auto-updating system along the same lines as Chrome, but unlike Chrome, Steam makes you watch it slowly download and apply the update; keeping it a background process like Chrome does eliminates much of the pain.
There are some who say updates shouldn't be made because of things like users who never want updates or extremely poor internet connections, but I really don't consider it worth it to address those issues with drastic changes. You should never address edge cases by harming the experience of the vast majority of your users who just...don't care. Chrome updates get relatively little grief compared to Adobe, Java Etc. If you need to keep up to date, do it! Quietly.