'People pull the rug from under your feet': barriers to successful public health programmes