pushd changes the drive and current directory at the same time.
pushd also tells the command processor to remember where you were, so you can popd back later.
ex:
C:\>pushd u:\games\mame0219b_64bit
u:\games\mame0219b_64bit>mame64 dkong
u:\games\mame0219b_64bit>popd
C:\>
The command processor memorizes c:\ (pushes it onto a stack) before it switches to u:\games\mame0219b_64bit, then it recalls c:\ (pops it off the stack) when you say popd.
You don't need to use popd in your case, because you're ending the batch file anyway, so it doesn't matter where you end up.
"Start" is used when you want the command processor to run a command with specific options in a new instance of the command processor. One option (/D) is the starting directory. You certainly could use Start instead of Pushd, and do it all with one command, but there's little reason to kick off another command processor when all you wanted to do was set the working directory. Anyway, that would be:
start /d d:\emulators\mame /min /wait mameui64.exe alien3