The usage of har over er reminds me of French. You are right would be tu as raison / vous avez raison, which literally translates as You have reason.
I believe it is the same in German : Du hast Recht. Which apparently literally translates to : You have rights ( not rights as in freedom to do something ), or a better but still broken translation would be : You have correctness.
It is the same in spanish tenés razón over sos razón, the latter is incorrect, of course.
They're often synonymous when dealing with correctness, but "riktig" can not be used with the verb "har" like in the above sentence. If the sentence uses the verb "er", chances are they're interchangeable.
"Rett" also has the meaning "straight". Literally straight, that is; it cannot be used to refer to a heterosexual person.
Okay...so you can't say "Du er delvis rett" , what about "Du har det delvis rett"?
That sounds a bit wrong. "Du har det..." is used in situations like "Har du det bra?" (en: Are you well?). I pretty sure it can't be used like you did, but please somebody correct me if I'm wrong.