Index: templates/newticket.cs
===================================================================
--- templates/newticket.cs	(revision 2237)
+++ templates/newticket.cs	(working copy)
@@ -6,6 +6,8 @@
 
 <div id="ctxtnav" class="nav"></div>
 
+<?cs include "site_newticket_policy.cs" ?>
+
 <div id="content" class="ticket">
 
 <h1>Create New Ticket</h1>
Index: trac/web/chrome.py
===================================================================
--- trac/web/chrome.py	(revision 2237)
+++ trac/web/chrome.py	(working copy)
@@ -105,43 +105,66 @@
         """Create the templates directory and some templates for
         customization.
         """
-        def _create_file(filename, data=None):
-            fd = open(filename, 'w')
-            if data:
-                fd.write(data)
-            fd.close()
-
         if self.env.path:
             templates_dir = os.path.join(self.env.path, 'templates')
             os.mkdir(templates_dir)
             _create_file(os.path.join(templates_dir, 'README'),
                         'This directory contains project-specific custom '
                         'templates and style sheet.\n')
-            _create_file(os.path.join(templates_dir, 'site_header.cs'),
-                         """<?cs
+            check_site_files(True)
+
+    def environment_needs_upgrade(self, db):
+        return self.check_site_files()
+
+    def upgrade_environment(self, db):
+        self.check_site_files(True)
+
+    _default_site_files = {
+        'site_header.cs': """<?cs
 ####################################################################
 # Site header - Contents are automatically inserted above Trac HTML
 ?>
-""")
-            _create_file(os.path.join(templates_dir, 'site_footer.cs'),
-                         """<?cs
+""",
+        'site_footer.cs': """<?cs
 #########################################################################
 # Site footer - Contents are automatically inserted after main Trac HTML
 ?>
-""")
-            _create_file(os.path.join(templates_dir, 'site_css.cs'),
-                         """<?cs
+""",
+        'site_css.cs': """<?cs
 ##################################################################
 # Site CSS - Place custom CSS, including overriding styles here.
 ?>
-""")
+""",
+        'site_newticket_policy.cs': """<?cs
+##################################################################
+# Site new ticket policy - Content inserted above the Create New Ticket title
+?>
+<p>
+ <em>Be sure you've searched for similar tickets before creating a new one.</em>
+</p>
+"""
+        }
 
-    def environment_needs_upgrade(self, db):
-        return False
+    def check_site_files(self, also_create=False):
+        def _create_file(filename, data=None):
+            fd = open(filename, 'w')
+            if data:
+                fd.write(data)
+            fd.close()
 
-    def upgrade_environment(self, db):
-        pass
+        needs_update = False
+        templates_dir = os.path.join(self.env.path, 'templates')
 
+        for filename, content in self._default_site_files.items():
+            path = os.path.join(templates_dir, filename)
+            if not os.path.isfile(path):
+                needs_update = True
+                if also_create:
+                    _create_file(path, content)
+                    self.log.debug('Default template %s added', filename)
+        return needs_update
+                
+
     # IRequestHandler methods
 
     def match_request(self, req):

