First, thanks to Scott Severance I found out how to do this. But I wanted to flesh out his answer to make it easier for new Ubuntu users.

Note: This works with Metacity window manager, the default window manager for Ubuntu desktop.

First download and install gDevilspire (I used Ubuntu Software Center)

OOPS!

When I tried to run it, it failed. But thanks to AskUbuntu I found the fix...

sudo apt-get install python-glade2

This is a bug in gDevilspire, a needed package is not identified in the dependecies. If you already have this package (one of my computers did) you will not have to do this.

So start the application so it's window is open, then fire up gDevilspire...

Click the ✔box so the daemon will startup at launch and then hit the add button...

Now give our rule a name.

Then identify the application's window for the new rule using it's properties. Two ways to do this:

Hit the Get button and be presented with a list of window_names, or

Find the window_class using xprop.

The 2nd way is safer because window name can change. Open a terminal and type in xprop | grep WM_CLASS The mouse cursor will change to a plus. Move the new cursor so it's over the desired application window, and click it. The wm_class will appear in the terminal...

-@-:~$ xprop | grep WM_CLASS
WM_CLASS(STRING) = "skype", "Skype"

Now click the Actions tab, and check the ✔box for set workspace then set the desired workspace...

If you like, check out the rule...

Now save the rule using the Save button...

And start the daemon if it's not running already.

Note: You can do lots with gDevilspire (devilspie). Places for more information:

Great explanation. This method is great when you want a certain application to have a fixed window placement, but only on startup. I use it to open a maximized Terminal window in an offscreen workspace on startup, and still be able to open other terminal windows in my active workspace.
–
KovikoAug 9 '12 at 15:54