Das ist entweder ein bug oder zumindest eine Schwaeche in der External lib.
Ich schreibe das als bug report fuer die Bibliothek auf, vielleicht kann ich es beheben.
----------
Details:
Wie schon in den Kommentaren richtig vermutet, hat es etwas mit mehrfachausfuehrung und Externalisierung zu tun.
Hier etwas genauer: _ohne_ externalisierung klappt es erst nach dem zweiten Kompile vorgang, d.h. nach
pdflatex Diplomarbeit
pdflatex Diplomarbeit
_Mit_ externalisierung ist das ganz aehnlich - das _Bild_ muss zweimal uebersetzt werden. Genauer:
pdflatex -shell-escape Diplomarbeit
pdflatex -shell-escape Diplomarbeit
schlaegt fehl (denn das _Bild_ wurde nur einmal waehrend des ersten vorgangs externalisiert und wird danach nicht mehr gelesen).
Wenn man aber
pdflatex -shell-escape Diplomarbeit
pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "BF+WA-sTE+KFsNoLI90" "\def\tikzexternalrealjob{Diplomarbeit}\input{Diplomarbeit}"
pdflatex -shell-escape Diplomarbeit
eingibt, klappt es. Der kryptische Befehl stammt dabei aus dem LaTeX `.log` file, da steht naemlich
===== 'mode=convert with system call': Invoking 'pdflatex -shell-escape -halt-on-error -interaction=batchmode -jobname "BF+WA-sTE+KFsNoLI90" "\def\tikzexternalrealjob{Diplomarbeit}\input{Diplomarbeit}"' ========
This is pdfTeX, Version 3.1415926-2.5-1.40.14 (TeX Live 2013)
Vermutlich sollte das Bild zweimal externalisiert werden.
Falls Du Linux verwendest, koennte
\tikzexternalize[mode=list and make]
helfen. Dann muesstest Du es mit
pdflatex Diplomarbeit
make -f Diplomarbeit.makefile
make -f Diplomarbeit.makefile
pdflatex Diplomarbeit
uebersetzen. Interessanterweise bekommt der naemlich mit, dass die Referenzen nicht ordentlich gesetzt sind.
Ich denke, die `external` lib sollte auch fuer den standardmodus pruefen, ob Referenzen noch zu beheben sind und ggf. neu externalisieren...
Fuer diesen konkreten Fall koennte man auch ueberlegen, warum man fuer eine Vorwaertsreferenz denn _ueberhaupt_ zweimal kompilieren muss.muss.
--------
***Achtung: Nicht-verwandte Best-practise:***
Beim Bearbeiten Deines Codes ist mir aufgefallen, dass Du
\tikzexternalize[prefix=figures/]{Diplomarbeit}
schreibst. Damit hast Du den Namen der Hauptdatei explizit nochmal in der Hauptdatei referenziert; wenn Du jemals mal die Datei als Vorlage fuer eine Neue nehmen willst, beisst Dich das. Leider war das so in der ersten Version der external lib notwendig; mitlerweile kannst Du aber einfach
\tikzexternalize[prefix=figures/]
schreiben, und es funktioniert unabhaengig vom Namen der Hauptdatei richtig. Letzteres ist deshalb zu verwenden.