In brief, so far I've taken the code for the existing org.apache.mahout.cf.taste.hadoop.item.RecommenderJob and created a new org.apache.mahout.cf.taste.hadoop.user.RecommenderJob. With help from Sean Owen, I followed a similar approach to the item-based implementation, but multiplied a user-user matrix with a user-item vector rather than an item-item matrix with an item-user vector. The result of the multiplication then needs to be transposed in order to output recommendations by user id.
Rather than changing the item-based code, I've created new classes for the user-based version, which tend to be modified versions of the originals. It would be much tidier to merge these together, where possible, and to parametrise them. I didn't want to change the item-based code straight off, however, without consulting you all.