Ein Beispiel für applikationsübergreifendes Drag&Drop ist der Explorer in Verbindung mit anderen Programmen. Wenn man vom Explorer aus ein paar Dateien dragt, dann "weiss" der Cursor, dass man Objekte vom Typ Dateien/Ordner "dragt". Und genau das erzählt der dann auch z.B. deinem Programm, wenn der Mauszeiger auf deinem Programm ist. Du musst dann nur dafür sorgen, dass dein Programm den Cursor "versteht" und antwortet: "ah ja...Dateien. Her damit!"
Wie das in Delphi geht, steht glaub ich auch in den FAQs. Generell macht ja applikationsübergreifendes Drag&Drop nur dann Sinn, wenn die Quell-Anwendung das Draggen unterstützt, und die Zielanwendung mit dem gedraggten was anfangen kann. Ich denke mal, dass es kaum eine Anwendung gibt, die es erlaubt, dass man ihre Buttons in andere Programme verschiebt...
Edit: Uups..vergessen:

We are, we were and will not be.