IP funktioniert bei Frames nicht, und klar, ein Referrer muss natürlich übertragen werden, aber davon sollte man ja erstmal ausgehen (ich weiß ja nicht, wie "gerissen" der Inhaber der anderen Website ist bzw. ob er überhaupt die Möglichkeit hat, so weit in die Serverkonfig. einzugreifen).
Deine JS-Lösung funktioniert natürlich auch (sofern der Besucher JS aktiviert hat), und zusätzlich würde ich noch die mod_rewrite-Lösung nehmen - mehr kannst Du technisch erstmal nicht tun. Sollte aber eh in jedem Fall reichen!
Auf folgendem Link finden sich beide Lösungen (die per JS hast Du ja eh bereits):
Unterbinden von Einbindung in fremde Seiten?