As part of a profile flow, I need to allow the user to look through and select individual items to add to their profile.
This list of items can be upwards of 300 items (the represent company divisions), the user should be able to select all, select individual, and/or select multiples of the items. The user needs to be able to see what they've already added.
There are some things I'd rather not do here: I don't just want a large (likely paginated) list of the items with checkboxes. The typical use case is 90% of the users will want 90% of the items (unfortunately those can't be logically grouped) so having to check those individually would be a bummer, even if you selected all and then had to hunt and peck to deselect.
I also want something that's more than an incremental improvement over the current experience. It is currently a left area with the items in it and you drag those over to the right (or select and click and add button). The good part about this is that you can see easily what is in and what is out, but it's super cumbersome with large data sets.
Some of the suggestions from a previous question handle the click and dragging back and forth issues, but I'm wondering if anyone has a better system than what was offered back then.
So I need to explain this a bit, in terms of the 90% that a few people have commented on. The 90% will not be the same for every user. Every client will have a different and self declared number of "Companies". So the 90% will differ depending on the client. After the client has added all the companies and the first few users get added, there is a good chance there will be a pattern we can grab and help create logical groupings based on the previously assigned companies.
EDIT
So, every client with N number of users and N number of companies will have this initial state to deal with. One client's creation and selection of companies cannot help determine the creation and selection of another clients companies because they are completely different. User interviews would only be specific for those individual clients, and since most clients structure their "companies" completely differently, user interviews only yield "I want to select my important companies to assign to specific users." When you ask what the "important" companies are, you typically get the answer "It depends, and it often changes".
That's why I'm looking for a good pattern to deal with this, the first few users of every client will have this to fight through.
We had started with the idea of having people create the logical groupings as they created companies but this was thrown out for technical reasons.
Thanks for all the input so far.