I'm not sure I understand your question, but I'll take a stab at it anyway...
I think the problem is that you are giving tar absolute path names rather than relative path names.
To wit:
Let's say you have a directory:
/Users/alex/foo
that contains a bunch of stuff you want to archive (tar).
You could do it this way:
tar cvf foo.tar /Users/alex/foo
but in that case when you untar, the entire absolute path will be maintained; that is to say, tar will try to put everything in:
/Users/alex/foo
OTOH, you can do this:
cd /Users/alex
tar cvf foo.tar ./foo
In UNIX, "." is a shorthand identifier for the current directory.
Now, when you untar, it will put things in:
./foo
regardless of what "." is. In other words, everything is relative to the current directory rather than defined absolutely from "/".
A few more words about absolute vs relative paths:
You can always tell an absolute path because it starts with a "/" This makes sense, "/" is the root of the filesystem, so if you define a path starting with "/" you're starting at the top.
Let's say /Users/alex/foo has a directory called "bar" inside, which in turn contains a file called "baz". We could refer to that file as:
/Users/alex/foo/bar/baz (an absolute path)
Or, from within /Users/alex as:
foo/bar/baz (a relative path: relative to the current directory).
That pretty much covers absolute vs relative paths... it's an important concept to wrap your head around for UNIXy purposes.
One final tip:
you can give tar the "Z" (that's a capital zee) flag and it will gzip in one step:
tar cvfZ foo.tgz ./foo
I know I answered _a_ question.... I just hope it was _your_ question
Good luck!
-Alex