Brandedqueues vs customfields

If I need to manage same problem types/queues (es. hw, sw, mail, ecc.)
for different companies belonging to the same Bigger Group, what is
better to use, branded queues or CF?
In case the answer is CF, now I have in place the ticket open phase so
that when a user sends an e-mail to an exchange server contact, this
forwards to the rt mail server: how can I filter on rt server so that if
the mail is coming from user1@company1.com it can set CF to company1 and
otherwise if from company2?

Thanks in advance for suggestion on use of both branded queues and CF
for these problems and also eventually for subqueuing purposes (such as

          /  CLIENT

HW ------/.
\ SERVER

)

My target would be to have the best balance between the number of
different queues and chance to analyze/report efficiently the kind and
relative number of problems I open tickets for.

Gianluca