Fake user ON by default in Blender materials and textures
You can use an app handler to set use_fake_user to True right before saving. The following addon does it for materials and textures:

bl_info = {
    "name": "Save unused Materials and Textures",
    "author": "CoDEmanX",
    "version": (1, 0, 0),
    "blender": (2, 63, 0),
    "location": "(none)",
    "description": "Enable fake user to rescue unused materials / textures automatically before saving",
    "warning": "Make sure this addon is enabled by default!",
    "category": "Material"}


import bpy
from bpy.app.handlers import persistent
from itertools import chain

@persistent
def enable_fakeuser(scene):
    for datablock in chain(bpy.data.materials, bpy.data.textures):
        datablock.use_fake_user = True


def register():
    bpy.app.handlers.save_pre.append(enable_fakeuser)


def unregister():
    bpy.app.handlers.save_pre.remove(enable_fakeuser)


if __name__ == "__main__":
    register()


Make sure this addon is really enabled (best make it enabled by default and do that whenever you update Blender).