It is safe to assume bash is installed iff one is running Linux. All bets are off on other systems. Generally, even on Linux systems, when bash is invoked as sh it is trying to emulate sh behavior even though bash features still seem to work.
In my opinion, the pushd isn't needed. The directory the script was executed from would be restored when the subshell exits (if that is the intended function of using pushd). So, we can simply replace it with cd.
The following would be more portable and, everyone can be happy:
</font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">#!/bin/sh