Another idea I had today is to put the List of Limitations of a program into the program. This would warn the user about some specific limitation only when he uses functionality that contains a limitation. I have done this with the C++ module reverse engineering part.
I did this because it was a module I wanted to integrate, but, it has so many limitations that providing this possibility with warning users of the limitations would be too frustating for anyone than myself. But, it is a rather interesting way of explicitly warning users about something that could annoy them. Today I had the idea of inserting this for all limitations! It is something for the user like TODO and FIXME markups are for developer. With the advantage that he may turn off the LoL warnings after seeing them for the first time. This could be easy with the new technologies such as Aspect Oriented Programming and Attribute Oriented Programming (e.g., Java 5 Annotations).
The kind of user warning depends on the type of program, e.g., ArgoUML would present a warning message while a server application adds a warning sentence in the log. This is also a much better way to manage limitations than using LoL list within the change management tool or a document sent to the user / customer.