We have developed a telephone-based cooperative natural language dialogue system. Since natural language involves very various expressions, a large number of VoiceXML scripts need to be prepared to handle all possible input patterns. Thus, flexible dialogue management for various user utterances is realized by generating VoiceXML scripts dynamically. Moreover, we address the issue of appropriate user modeling to generate cooperative responses to users. Specifically, three dimensions of user models are set up: the skill level to the system, the knowledge level on the target domain and the degree of hastiness. The models are automatically derived by decision tree learning using real dialogue data collected by the system. Experimental evaluation showed that the cooperative responses adapted to individual users served as good guides for novices without increasing the duration of dialogue for skilled users.