Hello nollaig,
there are different methods to accomplish this task. One way is to create a class in C# using the XSD application.The XSD tool is part of the .NET framework tools. You can use it to generate a common language class from the XSD file representation of the InfoPath form. If you want to check out this please have a look at the following for a good sample:
http://www.codeproject.com/KB/sharepoint/InfopathForm.aspx
Another way is to use a Console Application and classes in the System.Xml and System.IO namespaces to programmatically generate the XML for the InfoPath form. Here is a sample for this method:
http://www.bizsupportonline.net/infopath2007/programmatically-create-infopath-form-console-app.htm
Or you can use the empty xml as a blank placeholder form that you can copy programmatically whenever you want. Please look at the following link for a sample.
http://www.kindohm.com/archive/2008/01/10/programmatically-create-an-infopath-form-instance-from-xsn-template.html
Hope you will find a working solution for you...
Regards,