In this design, the program looks at student performance, decides what the student's problem is, and then simply presents the help to the student, whether she wants to see it at that point or not. What is at issue here is really how good students are as instructional strategists. This is likely to depend on the specific person and instructional situation, but all other things being equal, students are not very good. There is some evidence that they tend to overstudy easy material and understudy difficult content. In any case, these variables will probably influence the effectiveness of students' strategic decisions.
Older students are better strategists than younger ones.
Students who are aware of their learning strategies are better than those who are naive about then. The data structure for item-level help is going to be more complex, because instead of a single help file, we now have a piece of help for each item in the drill. This puts the help text into the feedback text area. In that case, it will not work to write the text into a text field or text area, because those areas ignore HTML tags, simply displaying them out verbatim as if they were part of the text. In such a case, the approproate strategy would be to display the text in another layer, frame, or window, so that the HTML will be interpreted properly.