It is unfair because other companies ARE required to pay taxes. It is unfair because groups of people are treated differently than individuals.
Why do we have different taxes for corporations and individuals? Just have every person (legal or physical) pay income taxes. And just like current income taxes, have them pay income taxes for any income earned abroad that has not yet been taxes at the same level as at home. And do the same for the person owning the company - have them pay income taxes if the taxes paid by the corporation were lower than those of the country where the owner resides.
This would also solve the problem of tax shelters - they wouldn't work now unless the entire company, including it's owners resided in a tax shelter (which is surprisingly not often the case, I guess tax shelters aren't all that good for actually running a company in.