Thanks for your help, your solution works.
But since my application is already installed and I am now in the process of creating the setup for a newer version of the app I had to solve it differently.
What I'm doing now is to check $INSTDIR in .onInit and if it ends with "\bin", I take its parent directory instead.
In case anyone is interested, here's the code I used for that:
; call this from .onInit
StrCmp $0 "\bin" lbl_upd lbl_inst
; app is already installed, update it
The functions StrStr and GetParent can be found in the NSIS help file (Appendix C).