i get paid in us dollars and usually get a cheque about every 4-5 weeks, whicj i then lodge in the bank and this takes 21 working days to clear, not much i can do about that as the wire transfer never worked, but i just feel the exchange is poor at present and is there any better option i could use for this goiing forward,
Some banks will give you value for your USD earlier than 21 days, but may reserve the right to declare the cheque "unpaid" up to the 21 days you describe. This is known in the trade as "fate". Anyway, it sometimes will depend on the relationship you have with your bank as to whether they will give you value before fate.
Shop around, I think NIB give earlier than 21 days, but check them out.