Is it "common?" Not counting video games, certainly not. I've almost never seen "difficulty settings" outside of a video game, though on rare occasion I'll see an app that has either a more complex version or more complex interface hidden in a setting for more "advanced" users. In fact in video games difficulty settings rarely affect the UI except in very complicated games where the UI is the difficulty. However, whether it's a good idea is an altogether different question from "is it common".
Before you consider anything like this, consider two very important things; the first is the Smashing Magazine article The Myth of the Sophisticated User; basically it points out that both "basic" and "advanced" users probably just want to get something done and optimizing for getting things done, period, is generally preferable to optimizing/balancing "complex" and "easy".
Second you need to consider that game design is significantly different from most app design in one key way; games are supposed to be a challenge. Many games aren't fun if you don't lose, if you never screw up from time to time. Most apps aren't fun if you screw up. This is why there's difficulty settings, to promote a sense of flow. Games need to support people who want it difficult and even want to suffer a bit. Users of advanced applications generally are doing it for productivity much more than the "challenge" of it. A few people might use emacs over a text editor for the raw challenge, but I'm sure most do just because it's how they get work done.
Instead, in interfaces what's generally done to cater to the "basic" and "advanced" interface is to hide away the advanced bits but leave them accessible for everyone. Stick them in a menu, document them with keyboard shortcuts.
And sometimes an "easy" interface may be the whole selling point of your app. Look at iA writer, an extremely minimalist writing application. It's really not the same as "Word, with easy mode on", it's created out of a completely separate paradigm. iA writer uses minimalism to keep you in a state of Flow by removing distraction; in productivity, Flow is mostly about the task, not the interface. The interface shouldn't get in the way regardless of how skilled you are, your task is the "difficulty setting", more or less. If you want a challenging task you'll try and reproduce the Mona Lisa in Photoshop, you won't add a bunch of complex features and odd UI elements you're unlikely to use.
When you add options like easy/hard interfaces you also run the risk of over-complicating things: Am I an advanced user? What do I lose by using easy mode? Instead, generally, either target your app for an audience or for completing a task (or a combination of both). Make it as simple as possible without eliminating functionality, but maybe push less useful functions on to the sidelines, behind a menu, or on Android into the Action Overflow.
So in summary, it's an interesting idea, but I find there's rarely a case where it will be practical to explicitly design hard/easy interfaces for an app. Instead, if necessary, allow some UI customizations like adding toolbars, or keep advanced features in a way that's documented but out of the way, like keyboard shortcuts. Generally if a user wants an app so completely different (simpler or more complex) they'll hunt down a whole different app. Of course that's in no small part because that's how the current world is; there's no "easy" mode for Photoshop, you'll just have to find a different app, but as I hope I've explained, that's not necessarily a bad thing.