I believe what you asking about are Hooks and Events. Craft has several of them listed in the Hooks Reference and Events Reference. And Craft also allows us to add Hooks and Events in our plugins, which other plugins can leverage.
In the case of Sprout Forms, as of this post, we don't have any documented events yet, but there are a couple in there and we'll be formalizing them more in the next release.
You'll probably want to take a look at sproutForms.beforeSaveEntry
Event. Right now, plugins like Sprout Invisible Captcha, SpamGuard, and Snaptcha use that Event to add spam protection to Forms. You could use that event as well to check for a confirmation field, and add a user to a list in Campaign Monitor.
Here's an example of how SpamGuard uses the event, which you can see here in the init()
method of primary plugin class file (I've added the comments myself in relation to your question):
# Check for an Event in your plugins init method
public function init()
{
# If you add a setting that allows a user to turn your integration on or off
# you can check for that setting here, before you run your code
if ($this->getSettings()->getAttribute('enableSproutFormsSupport'))
{
# Listen for the event where you want to add behavior
craft()->on('sproutForms.beforeSaveEntry', function(Event $event)
{
# Do your thing!
$spam = spamGuard()->detectDynamicFormSpam($event->params['entry']);
if ($spam)
{
$event->fakeIt = true;
$event->isValid = false;
}
});
}
}