Many people require the ability to dynamically build packages at execution-time using the SSIS API. Typically this is because they have a large number of tables in the source that they want to transfer to the destination and they don't want to have to go through the rigmarole of building a data-flow for each one.
Kirk Haselden alluded to how you may do this in his blog post Self Modifying Packages in SSIS? although in that case he was trying to solve a slightly different problem Up until now I hadn't seen a working bit of code that demonstrates how to do this.
Until today that is. Jessica Elise has managed to achieve this and has posted her code here: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1404157&SiteID=1&mode=1. If you are trying to build packages containing data-flows using the SSIS API then you do alot worse than copy what Jessica has done.
A few more references that you may find useful are:
Building Packages Programmatically
http://msdn2.microsoft.com/en-us/library/ms345167.aspx
Adding Tasks Programmatically
http://msdn2.microsoft.com/en-us/library/ms135956.aspx
Adding Data Flow Components Programmatically
http://msdn2.microsoft.com/en-us/library/ms135932.aspx
Iterate over a package programatically
http://blogs.conchango.com/jamiethomson/archive/2007/03/06/SSIS_3A00_-Iterate-over-a-package-programatically.aspx
-Jamie