To create a new instance of a custom form programmatically, use the Add method on the target folder's Items collection:
Set newItem = targetFolder.Items.Add("IPM.Post.YourFormName")
If it's a message form, use the Drafts folder as the target. If the target is a default folder, you can use the Namespace.GetDefaultFolder method to return it as a MAPIFolder object. To create an item in another person's mailbox, use Namespace.GetSharedDefaultFolder to get the MAPIFolder Otherwise, you can use the code at http://www.outlookcode.com/d/code/getfolder.htm to walk the folder hierarchy and return the MAPIFolder corresponding to a given path string.
See http://www.outlookcode.com/article.aspx?id=56 for other ideas.
BTW, using a published custom form to send messages outside an Exchange organization can cause problems with attachments for the recipients.

Signature
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54
> Is this also possible to do this with forms i published? The last 4 hours I
> tried to put "olformregistry" and "olorganizationregistry" in the command,
[quoted text clipped - 28 lines]
>> > the steps of going to File > New > Choose Form > Look In: User Templates In
>> > File System > Open test.otf