Something that we often ignore when developing user experience solutions is what is termed as the "phenomena of emergence" in information systems academic circles. In a nutshell, the phenomena of emergence implies that new piece of software or service created will develop new uses once it is in the hands of the users themselves. These users maybe completely different from what the designers and developers had inscribed for the users. In some cases, the uses can be expected while in others they appear as complete surprises.
The critical question is how do you create a software solution that allows for the phenomena of emergence? And the answer maybe a little simpler than you thought. When designing, rather than focusing the solution on interoperability with existing information standards and infrastructures, focus on providing as much flexiblity into the solution itself. Flexibility so that the users can mold the solution to their own needs, environments and usage patterns. This does not meet customization and lots of $$ for consultants - it simply means design the solution so that it can change and evolve too.
link to original post