Die einfachste Möglichkeit dürfte sein, einen *shorthand*-Alias zu definieren. Dann kann man beispielsweise `´` statt `"` zur Einleitung eines der Kürzel verwenden, beispielsweise:
\documentclass[spanish,ngerman]{article}
\usepackage{babel,fontspec,xltxtra,libertine}
\aliasshorthand{"}{´}% ´ wie " als shorthand behandeln
\AtBeginDocument{\shorthandoff*{"}}% " als shorthand generell abschalten
\begin{document}
\raggedright
Donauschifffahrtsversicherungspolicenvertrag/´"Donauschifffahrtsversicherungspolicenvertrag
\end{document}
Ergibt:
![mit Umbruch][1]
Natürlich funktionieren dann auch die übrigen Dinge, beispielsweise `´-` oder `´~`.
Ob das auch noch mit Deiner Umdefinierung von `"` funktioniert, kann ich nicht sagen, da mir dazu ein Beispiel fehlte. Daher auch der Hinweis, dass man nicht (nur) den Code angeben sollte, der problemlos funktioniert, sondern auch zeigen sollte, wo genau das Problem auftritt.
Das neue *shorthand* `´` funktioniert übrigens auch innerhalb oder nach einer `otherlanguage`-Umgebung, die man im Beispiel zusätzlich einfügt.
[1]: http://texwelt.de/wissen/upfiles/test34_1.png