Unfortunately UPS gets to decide what is commercial or residential. They have some mixed up and will charge residential for some commercial addresses.
I think they just return a result based on the zip and not the actual address so unless they were to change their result or request criteria I don't know that there is a way around it.
You can let the client choose but it will never guarantee the proper rate as UPS will classify some commercial as residential anyway.
So I just pad the add on section a bit to even out the win or loss from order to order.