We are developing mobile application. The problem we stuck in with is the GUI: what was initially considered as best usablity for one group of users appeared to be totaly unacceptable for another. We were trying to solve this controversity by making every thing configurable. But again we came close to the point where the number of different settings and options is beyond of understanding even a very experienced user :-). I understand that we have to rethink all the concept of the GUI, but I don't see any decent ideas :(. Perhaps we need some fresh look on this from someone outside.
Throw me a mail if you like, I'll be glad to have a look. My mail is in my profile. I probably won't be able to get back before the weekend though.
It's always fun to see what others are doing, besides maybe as you say it will be easier for someone that hasn't been too involved beforehand. It often is.
If you have exactly two mutually exclusive sets of users, I'd suggest just having two GUI set-ups, with a big ol' toggle switch between them. I'm guessing that's not the case, though--can you be more detailed as to what the differences in the requirements for the different userbases were?
What I would do is gather all the feature requests, and see if there is a pattern among them. Often there is. For instance, if you are doing a webforum: One user wants a feature that allows him to change tha background of the app, another user wants to change the border thickness of the forum posts, and yet another want to be able to have his name blink when he posts to the forum.
In this rather contrived example there is a clear pattern: It all has to do with design. And you can implement all the requests by creating a design editor where users can change the look of the site. If you are really clever you can do a javascript app that lets users pick out indivivual elements and apply CSS styling to them, maybe with a nice userinterface that lets him pick colors from a javascript palette, and nice input boxes for border thickness. And you can use javascript to let the user see his changes instantaneously... I'm getting carried away now...
Anyway: If you gather all the feature requests in logical groups, and look at how many requests there are in each group, as opposed to just how many users want to have their name blink when they post to your forum you will get a much clearer idea of where your problems are. Also, you will be able to solve many requests by implementing one feature - which will admittedly be a larger one, and thus more work.
If, on the other hand, you slap features on every now and then in no particular order you will in time end up with an interface that is almost impossible to figure out because there is no consistency. Just look at word ;-)
But as I said: Usability is much harder than it looks.