A solução mais simples é usar caminhos relativos. Por exemplo,
myExecutable ../fileloc/filename.txt
significa o mesmo em ambos os sistemas. É claro que essa sintaxe exige que o diretório atual do script de chamada (o script que contém a linha acima) esteja na mesma letra da unidade do Windows que o nome do arquivo. Se não, eu apenas adotaria a solução 2:
Uma solução mais geral seria adicionar um pouco de código condicional ao seu script, que verifica em qual host ou sistema você está e define uma variável de acordo. Algo parecido com isto:
if [ 'hostname' == mylinuxbox ]
then
BASEDIR=/remote
else
BASEDIR=//samba
fi
myExecutable "$BASEDIR"/fileloc/filename.txt