Build software for general concepts and encourage people to create their own solutions
Don't force conventions on people. Instead make your software general so everyone can find their own solution. Give people just enough to solve their own problems their own way. And then get out of the way.
When we built Ta-da List we intentionally omitted a lot of stuff. There's no way to assign a to-do to someone, there's no way to mark a date due, there's no way to categorize items, etc.
We kept the tool clean and uncluttered by letting people get creative. People figured out how to solve issues on their own. If they wanted to add a date to a to-do item they could just add (due: April 7, 2006) to the front of the item. If they wanted to add a category, they could just add [Books] to the front of the item. Ideal? No. Infinitely flexible? Yes.
If we tried to build software to specifically handle these scenarios, we'd be making it less useful for all the cases when those concerns don't apply.
Do the best job you can with the root of the problem then step aside. People will find their own solutions and conventions within your general framework.