In SharePoint 2007 (WSS3 - MOSS) è possibile aggiungere delle master page tramite una feature.
Per farlo è sufficiente creare una cartella (ad esempio SgartMasterPage) sotto la directory ...\12\TEMPLATE\FEATURES e inserire questi tre file:
XML: Feature.xml
<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/"
	Id="17F88F65-744F-470f-9F05-2AD35F6A17F8"
	Title="Sgart - Master Page new"
	Description="Sgart - Master Page modificata"
	Version="1.0.0.0"
	Scope="Site"
	Hidden="FALSE"
	DefaultResourceFile="core"
	ActivateOnDefault="TRUE"
	>
	<ElementManifests>
		<ElementManifest Location="elements.xml"/>
		<ElementFile Location="DefaultNew.master"/>
	</ElementManifests>
</Feature>

XML: elements.xml
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="SgartDefaultNew" Url="_catalogs/masterpage" Path="" RootWebOnly="TRUE" >
    <File Url="DefaultNew.master" Type="GhostableInLibrary" IgnoreIfAlreadyExists="True">
      <Property Name="MasterPageDescription" Value="Sgart.it master page" />
    </File>
  </Module>
</Elements>

XML: deaultNew.master
<%@ Master Language="C#" %>
<%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls"
  Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Import Namespace="Microsoft.SharePoint" %>
<%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
<%@ Register TagPrefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages"
  Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@ Register TagPrefix="wssuc" TagName="Welcome" Src="~/_controltemplates/Welcome.ascx" %>
<%@ Register TagPrefix="wssuc" TagName="DesignModeConsole" Src="~/_controltemplates/DesignModeConsole.ascx" %>
<html dir="<%$Resources:wss,multipages_direction_dir_value%>" runat="server" xmlns:o="urn:schemas-microsoft-com:office:office">
<head runat="server">
  <meta name="GENERATOR" content="Microsoft SharePoint">
  <meta name="progid" content="SharePoint.WebPartPage.Document">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta http-equiv="Expires" content="0">
  <SharePoint:RobotsMetaTag runat="server" />
  <title id="onetidTitle">
    <asp:contentplaceholder id="PlaceHolderPageTitle" runat="server" />
  </title>
  <SharePoint:CssLink runat="server" />
  <SharePoint:Theme runat="server" />
  <SharePoint:ScriptLink Language="javascript" Name="core.js" Defer="true" runat="server" />
  <SharePoint:CustomJSUrl runat="server" />
  <SharePoint:SoapDiscoveryLink runat="server" />
  <asp:contentplaceholder id="PlaceHolderAdditionalPageHead" runat="server" />
  <SharePoint:DelegateControl runat="server" ControlId="AdditionalPageHead" AllowMultipleControls="true" />
</head>
<body scroll="yes" onload="javascript:if (typeof(_spBodyOnLoadWrapper) != 'undefined') _spBodyOnLoadWrapper();">
  <form runat="server" onsubmit="return _spFormOnSubmitWrapper();">
    <WebPartPages:SPWebPartManager ID="m" runat="Server" />
    <table class="ms-main" cellpadding="0" cellspacing="0" border="0" width="100%" height="100%">
      <tr>
        <td>
          <asp:ContentPlaceHolder ID="PlaceHolderGlobalNavigation" runat="server">
            <table cellpadding="0" cellspacing="0" border="0" width="100%">
              <tr>
                <td colspan="4" class="ms-globalbreadcrumb">
                  <span id="TurnOnAccessibility" style="display: none"><a href="#" class="ms-skip"
                    onclick="SetIsAccessibilityFeatureEnabled(true);UpdateAccessibilityUI();return false;">
                    <SharePoint:EncodedLiteral runat="server" Text="<%$Resources:wss,master_turnonaccessibility%>"
                      EncodeMethod="HtmlEncode" /></a> </span><a href="javascript:;" onclick="javascript:this.href='#mainContent';"
                        class="ms-skip" accesskey="<%$Resources:wss,maincontent_accesskey%>" runat="server">
                        <SharePoint:EncodedLiteral runat="server" Text="<%$Resources:wss,mainContentLink%>"
                          EncodeMethod="HtmlEncode" /></a>
                  <table cellpadding="0" cellspacing="0" height="100%" class="ms-globalleft">
                    <tr>
                      <td class="ms-globallinks" style="padding-top: 2px;" height="100%" valign="middle">
                        <div>
                          <span id="TurnOffAccessibility" style="display: none"><a href="#" class="ms-acclink"
                            onclick="SetIsAccessibilityFeatureEnabled(false);UpdateAccessibilityUI();return false;">
                            <SharePoint:EncodedLiteral runat="server" Text="<%$Resources:wss,master_turnoffaccessibility%>"
                              EncodeMethod="HtmlEncode" /></a> </span>
                          <asp:ContentPlaceHolder ID="PlaceHolderGlobalNavigationSiteMap" runat="server">
                            <asp:SiteMapPath SiteMapProvider="SPSiteMapProvider" ID="GlobalNavigationSiteMap"
                              RenderCurrentNodeAsLink="true" SkipLinkText="" NodeStyle-CssClass="ms-sitemapdirectional"
                              runat="server" />
                          </asp:ContentPlaceHolder>
                        </div>
                      </td>
                    </tr>
                  </table>
                  <table cellpadding="0" cellspacing="0" height="100%" class="ms-globalright">
                    <tr>
                      <td valign="middle" class="ms-globallinks" style="padding-left: 3px; padding-right: 6px;">
                        <SharePoint:DelegateControl runat="server" ControlId="GlobalSiteLink0" />
                      </td>
                      <td valign="middle" class="ms-globallinks">
                        <wssuc:Welcome id="IdWelcome" runat="server" EnableViewState="false">
                        </wssuc:Welcome>
                      </td>
                      <td style="padding-left: 1px; padding-right: 3px;" class="ms-globallinks">
                        |</td>
                      <td valign="middle" class="ms-globallinks">
                        <table cellspacing="0" cellpadding="0">
                          <tr>
                            <td class="ms-globallinks">
                              <SharePoint:DelegateControl ControlId="GlobalSiteLink1" Scope="Farm" runat="server" />
                            </td>
                            <td class="ms-globallinks">
                              <SharePoint:DelegateControl ControlId="GlobalSiteLink2" Scope="Farm" runat="server" />
                            </td>
                          </tr>
                        </table>
                      </td>
                      <td valign="middle" class="ms-globallinks">
                          <a href="javascript:TopHelpButtonClick('NavBarHelpHome')" accesskey="<%$Resources:wss,multipages_helplink_accesskey%>"
                          id="TopHelpLink" title="<%$Resources:wss,multipages_helplinkalt_text%>" runat="server">
                          <img align='absmiddle' border="0" src="/_layouts/images/helpicon.gif" alt="<%$Resources:wss,multipages_helplinkalt_text%>"
                            runat="server" /></a>
                      </td>
                    </tr>
                  </table>
                </td>
              </tr>
            </table>
          </asp:ContentPlaceHolder>
        </td>
      </tr>
      <tr>
        <td class="ms-globalTitleArea">
          <table width="100%" cellpadding="0" cellspacing="0" border="0">
            <tr>
              <td id="GlobalTitleAreaImage" class="ms-titleimagearea">
                <SharePoint:SiteLogoImage ID="onetidHeadbnnr0" LogoImageUrl="/_layouts/images/titlegraphic.gif"
                  runat="server" /></td>
              <td class="ms-sitetitle" width="100%">
                <asp:ContentPlaceHolder ID="PlaceHolderSiteName" runat="server">
                  <h1 class="ms-sitetitle">
                    <SharePoint:SPLinkButton runat="server" NavigateUrl="~site/" ID="onetidProjectPropertyTitle">
                      <SharePoint:ProjectProperty Property="Title" runat="server" />
                    </SharePoint:SPLinkButton>
                  </h1>
                </asp:ContentPlaceHolder>
              </td>
              <td style="padding-top: 8px;" valign="top">
                <asp:ContentPlaceHolder ID="PlaceHolderSearchArea" runat="server">
                  <SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox" />
                </asp:ContentPlaceHolder>
              </td>
            </tr>
          </table>
        </td>
      </tr>
      <tr>
        <td id="onetIdTopNavBarContainer" width="100%" class="ms-bannerContainer">
          <asp:ContentPlaceHolder ID="PlaceHolderTopNavBar" runat="server">
            <table class="ms-bannerframe" border="0" cellspacing="0" cellpadding="0" width="100%">
              <tr>
                <td nowrap valign="middle">
                </td>
                <td class="ms-banner" width="99%" nowrap id="HBN100">
                  <asp:ContentPlaceHolder ID="PlaceHolderHorizontalNav" runat="server">
                    <SharePoint:AspMenu ID="TopNavigationMenu" runat="server" DataSourceID="topSiteMap"
                      EnableViewState="false" AccessKey="<%$Resources:wss,navigation_accesskey%>" Orientation="Horizontal"
                      StaticDisplayLevels="2" MaximumDynamicDisplayLevels="1" DynamicHorizontalOffset="0"
                      StaticPopOutImageUrl="/_layouts/images/menudark.gif" StaticPopOutImageTextFormatString=""
                      DynamicHoverStyle-BackColor="#CBE3F0" SkipLinkText="" StaticSubMenuIndent="0" CssClass="ms-topNavContainer">
                      <StaticMenuStyle />
                      <StaticMenuItemStyle CssClass="ms-topnav" ItemSpacing="0px" />
                      <StaticSelectedStyle CssClass="ms-topnavselected" />
                      <StaticHoverStyle CssClass="ms-topNavHover" />
                      <DynamicMenuStyle BackColor="#F2F3F4" BorderColor="#A7B4CE" BorderWidth="1px" />
                      <DynamicMenuItemStyle CssClass="ms-topNavFlyOuts" />
                      <DynamicHoverStyle CssClass="ms-topNavFlyOutsHover" />
                      <DynamicSelectedStyle CssClass="ms-topNavFlyOutsSelected" />
                    </SharePoint:AspMenu>
                    <SharePoint:DelegateControl runat="server" ControlId="TopNavigationDataSource">
                      <Template_Controls>
                        <asp:SiteMapDataSource ShowStartingNode="False" SiteMapProvider="SPNavigationProvider"
                          ID="topSiteMap" runat="server" StartingNodeUrl="sid:1002" />
                      </Template_Controls>
                    </SharePoint:DelegateControl>
                  </asp:ContentPlaceHolder>
                </td>
                <td class="ms-banner">
                    </td>
                <td valign="bottom" align="right" style="position: relative; bottom: 0; left: 0;">
                  <table cellpadding="0" cellspacing="0" border="0">
                    <tr>
                      <td>
                        <table height="100%" class="ms-siteaction" cellpadding="0" cellspacing="0">
                          <tr>
                            <td class="ms-siteactionsmenu" id="siteactiontd">
                              <SharePoint:SiteActions runat="server" AccessKey="<%$Resources:wss,tb_SiteActions_AK%>"
                                ID="SiteActionsMenuMain" PrefixHtml="<div><div>" SuffixHtml="</div></div>"
                                MenuNotVisibleHtml=" ">
                                <CustomTemplate>
                                  <SharePoint:FeatureMenuTemplate runat="server" FeatureScope="Site" Location="Microsoft.SharePoint.StandardMenu"
                                    GroupId="SiteActions" UseShortId="true">
                                    <SharePoint:MenuItemTemplate runat="server" ID="MenuItem_Create" Text="<%$Resources:wss,viewlsts_pagetitle_create%>"
                                      Description="<%$Resources:wss,siteactions_createdescription%>" ImageUrl="/_layouts/images/Actionscreate.gif"
                                      MenuGroupId="100" Sequence="100" UseShortId="true" ClientOnClickNavigateUrl="~site/_layouts/create.aspx"
                                      PermissionsString="ManageLists, ManageSubwebs" PermissionMode="Any" />
                                    <SharePoint:MenuItemTemplate runat="server" ID="MenuItem_EditPage" Text="<%$Resources:wss,siteactions_editpage%>"
                                      Description="<%$Resources:wss,siteactions_editpagedescription%>" ImageUrl="/_layouts/images/ActionsEditPage.gif"
                                      MenuGroupId="100" Sequence="200" ClientOnClickNavigateUrl="javascript:MSOLayout_ChangeLayoutMode(false);" />
                                    <SharePoint:MenuItemTemplate runat="server" ID="MenuItem_Settings" Text="<%$Resources:wss,settings_pagetitle%>"
                                      Description="<%$Resources:wss,siteactions_sitesettingsdescription%>" ImageUrl="/_layouts/images/ActionsSettings.gif"
                                      MenuGroupId="100" Sequence="300" UseShortId="true" ClientOnClickNavigateUrl="~site/_layouts/settings.aspx"
                                      PermissionsString="EnumeratePermissions,ManageWeb,ManageSubwebs,AddAndCustomizePages,ApplyThemeAndBorder,ManageAlerts,ManageLists,ViewUsageData"
                                      PermissionMode="Any" />
                                  </SharePoint:FeatureMenuTemplate>
                                </CustomTemplate>
                              </SharePoint:SiteActions>
                            </td>
                          </tr>
                        </table>
                      </td>
                    </tr>
                  </table>
                </td>
              </tr>
            </table>
          </asp:ContentPlaceHolder>
        </td>
      </tr>
      <asp:ContentPlaceHolder ID="WSSDesignConsole" runat="server">
        <wssuc:DesignModeConsole id="IdDesignModeConsole" runat="server" />
      </asp:ContentPlaceHolder>
      <asp:ContentPlaceHolder ID="SPNavigation" runat="server">
        <SharePoint:DelegateControl runat="server" ControlId="PublishingConsole" PrefixHtml="<tr><td colspan="4" id="mpdmconsole" class="ms-consolemptablerow">"
          SuffixHtml="</td></tr>">
        </SharePoint:DelegateControl>
      </asp:ContentPlaceHolder>
      <tr height="100%">
        <td>
          <table width="100%" height="100%" cellspacing="0" cellpadding="0">
            <tr>
              <td class="ms-titlearealeft" id="TitleAreaImageCell" valign="middle" nowrap>
                <div style="height: 100%" class="ms-titleareaframe">
                  <asp:ContentPlaceHolder ID="PlaceHolderPageImage" runat="server" />
                </div>
              </td>
              <td class="ms-titleareaframe" id="TitleAreaFrameClass">
                <asp:ContentPlaceHolder ID="PlaceHolderTitleLeftBorder" runat="server">
                  <div class="ms-titleareaframe">
                    <img src="/_layouts/images/blank.gif" width="1" height="100%" alt="" /></div>
                </asp:ContentPlaceHolder>
              </td>
              <td valign="top" id="onetidPageTitleAreaFrame" class='ms-pagetitleareaframe' nowrap>
                <table id="onetidPageTitleAreaTable" cellpadding="0" cellspacing="0" width="100%"
                  border="0">
                  <tr>
                    <td valign="top" class="ms-titlearea">
                      <asp:ContentPlaceHolder ID="PlaceHolderTitleBreadcrumb" runat="server">
                        <asp:SiteMapPath SiteMapProvider="SPContentMapProvider" ID="ContentMap" SkipLinkText=""
                          NodeStyle-CssClass="ms-sitemapdirectional" runat="server" />
                         
                      </asp:ContentPlaceHolder>
                    </td>
                  </tr>
                  <tr>
                    <td height="100%" valign="top" id="onetidPageTitle" class="ms-pagetitle">
                      <h2 class="ms-pagetitle">
                        <asp:ContentPlaceHolder ID="PlaceHolderPageTitleInTitleArea" runat="server" />
                      </h2>
                    </td>
                  </tr>
                </table>

                  <SharePoint:SPSecurityTrimmedControl ID="SPSecurityTrimmedControl1" runat="server" PermissionsString="ManageWeb">
                    <div class="ms-quicklaunchheader">
                      <SharePoint:SPLinkButton ID="idNavLinkViewAll" runat="server" NavigateUrl="~site/_layouts/viewlsts.aspx"
                        Text="<%$Resources:wss,quiklnch_allcontent%>" AccessKey="<%$Resources:wss,quiklnch_allcontent_AK%>" />
                    </div>
                  </SharePoint:SPSecurityTrimmedControl>

              </td>
              <td class="ms-titlearearight">
                <asp:ContentPlaceHolder ID="PlaceHolderMiniConsole" runat="server" />
                <asp:ContentPlaceHolder ID="PlaceHolderTitleRightMargin" runat="server">
                  <div class="ms-titleareaframe" style='height: 100%'>
                    <img src="/_layouts/images/blank.gif" width="1" height="1" alt="" /></div>
                </asp:ContentPlaceHolder>

              </td>
            </tr>
            <asp:ContentPlaceHolder ID="PlaceHolderTitleAreaSeparator" runat="server" />

            <tr>
            
              <!--
              <td class="ms-leftareacell" valign="top" height="100%" id="LeftNavigationAreaCell">
              
              <table class="ms-nav" width="100%" height="100%" cellpadding="0" cellspacing="0"
                border="1">
                <tr>
                  <td>
                    aa
                    <table height="100%" class="ms-navframe" cellpadding="0" cellspacing="0" border="0">
                      <tr valign="top">
                        <td width="4px">
                          bb
                          <img src="/_layouts/images/blank.gif" width="4" height="1" alt="" /></td>
                        <td valign="top" width="100%">
                          <asp:ContentPlaceHolder ID="PlaceHolderLeftNavBarDataSource" runat="server" Visible="false" />
                          <asp:ContentPlaceHolder ID="PlaceHolderCalendarNavigator" runat="server" Visible="false" />
                          <asp:ContentPlaceHolder ID="PlaceHolderLeftNavBarTop" runat="server" Visible="false" />
                          <asp:ContentPlaceHolder ID="PlaceHolderLeftNavBar" runat="server" Visible="false">
                            <div class="ms-quicklaunchouter">
                              <div class="ms-quickLaunch" style="width: 100%">
                                <h3 class="ms-standardheader">
                                  <label class="ms-hidden">
                                    <SharePoint:EncodedLiteral runat="server" Text="<%$Resources:wss,quiklnch_pagetitle%>"
                                      EncodeMethod="HtmlEncode" />
                                  </label>
                                </h3>
                                <SharePoint:SPNavigationManager ID="QuickLaunchNavigationManager" runat="server"
                                  QuickLaunchControlId="QuickLaunchMenu" ContainedControl="QuickLaunch" EnableViewState="false">
                                  <div>
                                    <SharePoint:DelegateControl runat="server" ControlId="QuickLaunchDataSource">
                                      <Template_Controls>
                                        <asp:SiteMapDataSource SiteMapProvider="SPNavigationProvider" ShowStartingNode="False"
                                          ID="QuickLaunchSiteMap" StartingNodeUrl="sid:1025" runat="server" />
                                      </Template_Controls>
                                    </SharePoint:DelegateControl>
                                    <SharePoint:AspMenu ID="QuickLaunchMenu" DataSourceID="QuickLaunchSiteMap" runat="server"
                                      Orientation="Vertical" StaticDisplayLevels="2" ItemWrap="true" MaximumDynamicDisplayLevels="0"
                                      StaticSubMenuIndent="0" SkipLinkText="">
                                      <LevelMenuItemStyles>
                                        <asp:MenuItemStyle CssClass="ms-navheader" />
                                        <asp:MenuItemStyle CssClass="ms-navitem" />
                                      </LevelMenuItemStyles>
                                      <LevelSubMenuStyles>
                                        <asp:SubMenuStyle CssClass="ms-navSubMenu1" />
                                        <asp:SubMenuStyle CssClass="ms-navSubMenu2" />
                                      </LevelSubMenuStyles>
                                      <LevelSelectedStyles>
                                        <asp:MenuItemStyle CssClass="ms-selectednavheader" />
                                        <asp:MenuItemStyle CssClass="ms-selectednav" />
                                      </LevelSelectedStyles>
                                    </SharePoint:AspMenu>
                                  </div>
                                </SharePoint:SPNavigationManager>
                                <SharePoint:SPNavigationManager ID="TreeViewNavigationManager" runat="server" ContainedControl="TreeView">
                                  <table class="ms-navSubMenu1" cellpadding="0" cellspacing="0" border="0">
                                    <tr>
                                      <td>
                                        <table class="ms-navheader" width="100%" cellpadding="0" cellspacing="0" border="0">
                                          <tr>
                                            <td nowrap id="idSiteHierarchy">
                                              <SharePoint:SPLinkButton runat="server" NavigateUrl="~site/_layouts/viewlsts.aspx"
                                                ID="idNavLinkSiteHierarchy" Text="<%$Resources:wss,treeview_header%>" AccessKey="<%$Resources:wss,quiklnch_allcontent_AK%>" />
                                            </td>
                                          </tr>
                                        </table>
                                      </td>
                                    </tr>
                                  </table>
                                  <div class="ms-treeviewouter">
                                    <SharePoint:SPHierarchyDataSourceControl runat="server" ID="TreeViewDataSource" RootContextObject="Web"
                                      IncludeDiscussionFolders="true" />
                                    <SharePoint:SPRememberScroll runat="server" ID="TreeViewRememberScroll" onscroll="javascript:_spRecordScrollPositions(this);"
                                      Style="overflow: auto; height: 400px; width: 150px;">
                                      <SharePoint:SPTreeView ID="WebTreeView" runat="server" ShowLines="false" DataSourceID="TreeViewDataSource"
                                        ExpandDepth="0" SelectedNodeStyle-CssClass="ms-tvselected" NodeStyle-CssClass="ms-navitem"
                                        NodeStyle-HorizontalPadding="2" SkipLinkText="" NodeIndent="12" ExpandImageUrl="/_layouts/images/tvplus.gif"
                                        CollapseImageUrl="/_layouts/images/tvminus.gif" NoExpandImageUrl="/_layouts/images/tvblank.gif">
                                      </SharePoint:SPTreeView>
                                    </SharePoint:SPRememberScroll>
                                  </div>
                                </SharePoint:SPNavigationManager>
                                <table width="100%" cellpadding="0" cellspacing="0" border="0">
                                  <tr>
                                    <td>
                                      <table class="ms-recyclebin" width="100%" cellpadding="0" cellspacing="0" border="0">
                                        <tr>
                                          <td nowrap>
                                            <SharePoint:SPLinkButton runat="server" NavigateUrl="~site/_layouts/recyclebin.aspx"
                                              ID="idNavLinkRecycleBin" ImageUrl="/_layouts/images/recycbin.gif" Text="<%$Resources:wss,StsDefault_RecycleBin%>"
                                              PermissionsString="DeleteListItems" />
                                          </td>
                                        </tr>
                                      </table>
                                    </td>
                                  </tr>
                                </table>
                              </div>
                            </div>
                          </asp:ContentPlaceHolder>
                          <asp:ContentPlaceHolder ID="PlaceHolderLeftActions" runat="server">
                          </asp:ContentPlaceHolder>
                        </td>
                      </tr>
                      <tr>
                        <td colspan="2">
                          <asp:ContentPlaceHolder ID="PlaceHolderNavSpacer" runat="server">
                            <img src="/_layouts/images/blank.gif" width="138" height="1" alt="" /></asp:ContentPlaceHolder>
                        </td>
                      </tr>
                    </table>
                    bb</td>
                  <td>
                    ff
                    <asp:ContentPlaceHolder ID="PlaceHolderLeftNavBarBorder" runat="server">
                    </asp:ContentPlaceHolder>
                  </td>
                </tr>
              </table>
              </td>
-->

              <td colspan="2">
                <asp:ContentPlaceHolder ID="PlaceHolderBodyLeftBorder" runat="server">
                  <div class="ms-pagemargin">
                    <img src="/_layouts/images/blank.gif" width="10" height="1" alt="" /></div>
                </asp:ContentPlaceHolder>
              </td>
              <td class='ms-bodyareacell' valign="top">
                <placeholder id="MSO_ContentDiv" runat="server">
		<table id="MSO_ContentTable" width=100% height="100%" border="0" cellspacing="0" cellpadding="0" class="ms-propertysheet">
		  <tr>
			 <td class='ms-bodyareaframe' valign="top" height="100%">
			   <A name="mainContent"></A>
				<asp:ContentPlaceHolder id="PlaceHolderPageDescription" runat="server"/>
				<asp:ContentPlaceHolder id="PlaceHolderMain" runat="server">
				</asp:ContentPlaceHolder>
			 </td>
		  </tr>
		</table>
		</placeholder>
              </td>
              <td class="ms-rightareacell">
                <asp:ContentPlaceHolder ID="PlaceHolderBodyRightMargin" runat="server">
                  <div class="ms-pagemargin">
                    <img src="/_layouts/images/blank.gif" width="10" height="1" alt="" /></div>
                </asp:ContentPlaceHolder>
              </td>
            </tr>
            <tr>
              <td class="ms-pagebottommarginleft">
                <img src="/_layouts/images/blank.gif" width="1" height="10" alt="" /></td>
              <td class="ms-pagebottommargin">
                <img src="/_layouts/images/blank.gif" width="1" height="10" alt="" /></td>
              <td class="ms-bodyareapagemargin">
                <img src="/_layouts/images/blank.gif" width="1" height="10" alt="" /></td>
              <td class="ms-pagebottommarginright">
                <img src="/_layouts/images/blank.gif" width="1" height="10" alt="" /></td>
            </tr>
          </table>
        </td>
      </tr>
    </table>
    <asp:ContentPlaceHolder ID="PlaceHolderFormDigest" runat="server">
      <SharePoint:FormDigest runat="server" />
    </asp:ContentPlaceHolder>
    <input type="text" name="__spDummyText1" style="display: none;" size="1" />
    <input type="text" name="__spDummyText2" style="display: none;" size="1" />
  </form>
  <asp:ContentPlaceHolder ID="PlaceHolderUtilityContent" runat="server" />
  <asp:ContentPlaceHolder ID="PlaceHolderBodyAreaClass" runat="server" />
  <asp:ContentPlaceHolder ID="PlaceHolderTitleAreaClass" runat="server" />
</body>
</html>

ovviamente il file deaultNew.master è solo un esempio ed andrà personalizzato.
Assegnate un Id (Guid) diverso e univoco alle vostre feature

Per installare la feature vedi la pagina Semplice Feature il file install.bat. Mentre per l'attivazione è sufficiente andare nei site setting della site collection.

Gli stessi file possono essere utilizzati per aggiungere una pagina aspx, modificando solo piccole cose e inserendoli in una cartella diversa ...\12\TEMPLATE\FEATURES \SgartPage:

XML: Feature.xml
<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/"
	Id="91160705-26BF-43b8-85D2-1AE8E191FA25"
	Title="Sgart - Pagina"
	Description="Sgart - Pagina aspx"
	Version="1.0.0.0"
	Scope="Web"
	Hidden="FALSE"
	>
	<ElementManifests>
		<ElementManifest Location="elements.xml"/>
		<ElementFile Location="pagina.aspx"/>
	</ElementManifests>
</Feature>
dove è cambiato lo scope cha da Site passa a Web
XML: elements.xml
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="SgartPageNew" Url="" Path="" >
    <File Url="pagina.aspx" IgnoreIfAlreadyExists="True">
    </File>
  </Module>
</Elements>
dove la pagina non viene salvata in una library ma direttamente nella root del sito (proprietà Url vuota) ed è quindi stato eliminato l'attributo Type="GhostableInLibrary".
Potrebbe interessarti anche: