This approach seems fine - I forget many of the idiosyncrasies of PluginSys, but in general it's safe to call stuff before OnPluginStart as long as the user understands extensions may not be loaded yet. In that sense this is a breaking change - maybe that's okay - but I'd add a comment into the .inc file that it can be called in between `AskPluginLoad` and `OnPluginStart`.

A few style comments though: use direct assignment when possible, i.e.:

```
for (List<CPlugin *>::iterator pl_iter = m_plugins.begin(); pl_iter != m_plugins.end(); pl_iter++)
{
	CPlugin *pl = (*pl_iter);
```

And
```
if(pl == pPlugin || pl->GetStatus() != Plugin_Running)
```

Should be:
```
if (pl == pPlugin || pl->GetStatus() != Plugin_Running)
```