One of the most complicated user interfaces in CRM systems is frequently the profiling interface. You want to sort your contacts, filter them and literally create formulas of filters that you can save. I've also posted these drafts to the Reden CRM group the other day to get the discussion with thinkshout started who have developed the awesome Redhen CRM core.
An idea that seems to work quite well is to use the concept of "baskets" like in a web shop. You have to see the "basket" as a sort of extension of views bulk operations. Instead of just clicking your list together and then performing a bulk operation on the contacts you can filter (or select manually) and then "add the selection to the basket".
The actual bulk operation is now not on the same page, but the first screen is limited to the task of collecting the right people before you do something with them.
Once you're done selecting, filtering etc. you "go to your basket". In here you have the usual views bulk operations. Note that one of those operations is to "save basket". If you do that you'll be able to reuse the basket in future.
The basket itself does not just save the IDs of the selected items (contacts), it also understands if you've added individual people or actually a whole filter (like all contacts tagged with X).
For more advanced users the formula created remains editable. Particularly if you save a basket you can always remove specific parts of the formula later on.
If you want to edit the basket content you click "edit basket" and land on the same page like the beginning (only that saved baskets have the name of the basket on it).
All saved baskets end up in a list. To spin the same concept even further on the list of all saved baskets you can create "super baskets" which are a hierarchy above the actual basket. Yes, those are baskets containing baskets.
I'd love to hear your thoughts, ideas and if you want to make it happen give us a shout!