I would say that there are several ways to achieve this:
1) Using the UI "Page Types" - if the page that you use as the page type should contain the same metadata. * I have not tested this !!! maybe you can confirm?
2) GUI extension - when choosing a page template, page metadata is selected based on the page template.
3) Event system. I'm not sure how much this will work, since it probably should be related to creating a page (checking the use of the default template) or saving if the template is used, and no metadata scheme is selected. but then if there is mandatory metadata, etc. etc.
4) Page template. This will set metadata (when publishing or previewing) - or alert the user that certain metadata must be set for this page template.
Hope this helps.
thanks
John
source share