ZCML can be used to override views.
Older Plone templates, like main_template.pt, use portal_skins layering facilities.
More about it in here:
Your addon needs GenericSetup profile
You register skin layers in GenericSetup XML
You register skin layers in ZCML
skin templates are overridden in the order given by portal_skins Properties tab (you can test and manage TTW after ZCML part is done)