I'm used to how svn export works, and have used this in a number of release scripts.
Git doesn't quite have an equivalent
There is
git archive
Which creates a tarball rather than a set of files, and while you can export a subset of the repository you still get the full path in the tarball.
and
git checkout-index
Which creates a set of files (these can be locate outside the working copy) but requires a local repository.