drupal_get_form()で存在するフォームを呼んでいるのに、call_user_func_array()のエラーが出る

drupal_get_form()で確実の存在するフォームを呼び出しているにもかかわらず、エラーが出る。

drupal_get_form('user_pass')

user_passはコアのuserモジュールに含まれているもので、存在しないわけはない。ところが、

warning: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'user_pass' was given in /var/www/html/drupal-6.17/includes/form.inc on line 372.

'user_pass'は正しいコールバックではありませんよ、と出ている。これはdrupal_get_formを呼んでいる時点では、まだuser.moduleが読み込まれていないことが原因。したがって、その前に明示的にuser.moduleのそのフォームがあるファイルを読み込んでおく必要がある。
この例の場合、user_passという関数はuser/user.pages.incの中にあるので、module_load_includeを使って、

module_load_include('inc', 'user', 'user.pages');
drupal_get_form('user_pass')

のようにすると、エラーが消える。