@eal
You need to enclose `$@` into double quotes.
$ cat bad.sh
#!/bin/sh
./script.sh $@
$ cat good.sh
#!/bin/sh
./script.sh "$@"
$ cat script.sh
#!/bin/sh
for x in "$@"; do echo "\"$x\""; done
$ ./bad.sh "a b c"
"a"
"b"
"c"
$./good.sh "a b c"
"a b c"