I write in my struts.xml this interceptor stack
<interceptor-stack name="project-interceptors-stack">                                               
    <interceptor-ref name="my1-i" />
    <interceptor-ref name="my2-i" />                
    <interceptor-ref name="paramsPrepareParamsStack" /> 
    <interceptor-ref name="logger" />
    <interceptor-ref name="timer" />
</interceptor-stack>
where my1-i and my2-i are my custom interceptor. I do not use this interceptor
<interceptor-ref name="i18n"/>
<interceptor-ref name="prepare"/>
<interceptor-ref name="modelDriven"/>
<interceptor-ref name="validation">
but, my action's, which are Preparable, ModelDriven and Validateable work well ... why ?
Follow-up: I omitted an important detail: the interceptor stack is defined in the first package and is inherited by all sub package.
More precisely i wanted to ask this: why if my action implements Preparable, and i don't have the interceptor '<interceptor-ref name="prepare"/>' in my custom stack, the prepare method is called correctly?