This is what we do on those projects where we have those different costs.
If the end users are on board, you could have say three tasks setup for logging time. One at the task level with that custom rate. Another at the user level for their assigned rate, and then a third to be based on their job role for the task. Probably a bit too much complexity, but could work here.