Lo mas correcto es delinear exactamente que va a hacer tu sistema de plugins, luego es diseñar el API y como bien comentas en ciertos lugares del codigo poner las llamadas a los plugins.
Por ejemplo un foro, cuando se dibuja un post, llamas a una funcion:
Código PHP:
$mensaje = ""; // variable que contiene el mensaje del usuario
Plugin::dispatch( "on_message_draw", &$mensaje );
echo $mensaje;
Asi por decir tu clase plugins puede buscar los plugins que implementen esa API on_message_draw y les pasa por parametro el mensaje.
Es algo que se puede hacer con el patron Decorador de Programacion Orientada a Objetos.
Saludos.