Yes, but only by changing the shellcode slightly. Not specifying the directory to save the code in and using the default of the present working directory saves some shellcode space, so thats the way I chose to do it. You could hardcode it into the asm code, into the db entry after the cmddata label.

Stick the desired path in before the "a.vbs" in the following.

db "wscript //B a.vbs", 0

I havent tested that, but based on the quick glance over the assembly I think it should work - the URLDownloadToFileA function takes the filename to save to from an offset 12 bytes into that string.

The Metasploit module could also be modified reasonably simply to do this. There are some more details about that here:

Its not going to work on a 64 bit process, the shellcode is 32 bit assembly. On 32 bit, confirm that the script is being correctly downloaded and written to disk and that the command line, e.g. 'wscript //B a.vbs' works. Try it in a different process (e.g. use one of these methods http://www.thegreycorner.com/2011/04/high-level-windows-shellcode.html) to make sure there is nothing unique about the particular process you are using that's stopping this from working.