Hola Caro,
porque no recorres el select que te da el orden de los usuarios y vas metiendo el user en una variable string.
Código Delphi
[-]
while QueryOrden.eof=false do
begin
if ordenados='' then ordenados:=queryorden.fieldbyname('user').asstring
else ordenados:=ordenados+','+queryorden.fieldbyname('user').asstring;
QueryOrden.Next;
end;
QueryOtro.Close;
QueryOtro.SQL.Text:='SELECT * FROM tabla ORDER BY '+ordenados;
QueryOtro.Open;
Saludos