If I am not mistaken, the shell is responsible for the aliases. This way, you have to ensure that Python does the things through the shell. You probably should try the newer module called subprocess (
http://docs.python.org/lib/module-subprocess.html). There is a section about how to replace the older os.system(). You can notice that there is the optional argument shell=True (or False). However, the module was introduced only in Python 2.4 and some functionality in 2.5.
See how os.system() should be replaced (
http://docs.python.org/lib/node536.html). Notice that subprocess.Popen() is the core of the new replacement. Notice the usage of the shell argument.
There also is a convenicence function subprocess.call() that calls the Popen() plus waits to the result -- you may want it.
You can pass or a sequence of the arguments (list or tuple) or the string. This way you should be able to replace your os.system() almost mechanically by subprocess.call().
I am curious if it is going to solve the problem or not. However, my guess is that if there is a difference then it is only because subprocess is newer (implemented better).