Dovresti costruire il tuo $set modificatore a livello di codice:
var modifier = { $set: {} };
modifier.$set['companies.' + companyid] = { desksmemberships:[] };
E poi usa modifier come terzo parametro nel tuo findAndModify chiama.
Potresti anche prendere in considerazione la possibilità di cambiare companies essere un array invece di un oggetto incorporato.
Aggiornamento Node.js 4.x
È ora possibile utilizzare la sintassi della proprietà calcolata per eseguire questa operazione direttamente nel valore letterale dell'oggetto:
collection('users').findAndModify(
{username: usern},
[['_id', 'asc']],
{$set:{['companies.' + companyid]: { desksmemberships:[] }}},
{new: true},
function(){...});