Once the lead has been created in Marketo, you can use Request Campaign
REST: http://developers.marketo.com/documentation/rest/request-campaign/
SOAP: http://developers.marketo.com/documentation/soap/requestcampaign/
The Smart Campaign must have a “Campaign is Requested” trigger with a Web Service API source.
Then the flow steps of the Smart Campaign can add the lead to the program and do whatever else you want (send emails, request additional campaigns, etc.).
This method is quite flexibile as no programming is required if you change your mind about what actions you want to happen. Just change the flow steps.