Você está alterando diretórios dentro do seu script? No bash e no script, acho que o pwd na verdade deveria estar retornando o diretório de trabalho daquele usuário, não a localização do próprio script.
por exemplo,
echo "touch make_a_file" > make_a_file.sh
~/ $ ls
make_a_file.sh
~/ $ mkdir -p make/some/directories
~/ $ cd make/some/directories
~/make/some/directories $ sh ../../../make_a_file.sh
~/make/some/directories $ ls
make_a_file
como você pode ver aqui, do ubuntu 12.10 com a versão atual do bash, eu criei um script, executei-o a partir de um diretório diferente (de dentro do caminho make / some / directory), e o novo arquivo foi criado dentro do diretório em que eu estava ... não a localização do script. Tenha certeza de que você não está se movendo em qualquer lugar do seu script ou mostre algum código para ver o que está acontecendo.