I know it’s and oldie but I just got this question today so perhaps time for a refresher. The question was on “how to queue activities and other things in CRM workflow – I vaguely recall ‘assign’ operation but I can only assign to a user and not a queue”.
Long, long time ago CRM introduced ability to queue arbitrary (well, almost) entities – just need to enable an entity for the queues (careful though – it’s a one way street, once enabled, you won’t be able to remove this flag). To queue these and any built-in queue-enabled entities (like tasks, cases, etc) inside a workflow or inside your code, you simply need to create a new Queue Item record and set the properties such as Queue Name and Queue Item (i.e. the record to queue). Optionally set Worked By and you are done.
To move item to another queue, simply create another queue item – the system will take care of the cleanup of the now orphan item.