I'm not absolutely sure that this is the course of the problem, and have not done extensive checking yet, but it appears the cause was that this view was missing:
CREATE VIEW "wf_user_tasks" as SELECT DISTINCT ta.task_id, ta.case_id, ta.workflow_key, ta.transition_key, tr.transition_name, ta.enabled_date, ta.started_date, u.user_id, ta.state, ta.holding_user, ta.hold_timeout, ta.deadline, ta.estimated_minutes FROM wf_tasks ta, wf_task_assignments tasgn, wf_cases c, wf_transition_info tr, party_approved_member_map m, users u WHERE (((((((((((ta.state = 'enabled'::"varchar") OR (ta.state = 'started'::"varchar")) AND (c.case_id = ta.case_id)) AND (c.state = 'active'::"varchar")) AND (tr.transition_key = ta.transition_key)) AND (tr.workflow_key = ta.workflow_key)) AND (tr.trigger_type = 'user'::"varchar")) AND (tr.context_key = c.context_key)) AND (tasgn.task_id = ta.task_id)) AND (m.party_id = tasgn.party_id)) AND (u.user_id = m.member_id)) ORDER BY ta.task_id, ta.case_id, ta.workflow_key, ta.transition_key, tr.transition_name, ta.enabled_date, ta.started_date, u.user_id, ta.state, ta.holding_user, ta.hold_timeout, ta.deadline, ta.estimated_minutes;
I discovered this while moving the site from one server to another (documented at http://rubick.com/openacs/moving). I got this error while doing the import:
psql:safe4all_27.dmp:18876: ERROR: Relation "party_approved_member_map" does not exist
Hopefully that will fix the problem if someone else has similar problems in the future.
Thank you all for your help.