Ah, asked too quickly. On Linux, the answer is to use `readlink` with the `-m` switch:
$ readlink -m /home/saml/web/../web_login_form_examples/basic-php-parsing.zip
/home/saml/web_login_form_examples/basic-php-parsing.zip
_readlink man page_
-m, --canonicalize-missing
canonicalize by following every symlink in every component of the
given name recursively, without requirements on components existence