Unwrap UV map proportionally to object size
UV-mapping defines a vertex on the model to a corresponding point on an image. When you have an image fit to a single face, then you make the model bigger the same vertex still maps to the same point on the image.

Using the same material for two objects with uv coordinates you get the size variation, unless you unwrap each object and adjust the uv's to match the texture size to it.



If we change that to object coordinates the image size remains constant between models, you may also want to set the projection from flat to box.



In Blender Internal you have the same settings under mapping -



In cycles you can add a mapping node after the texture coordinates to adjust the size and position of the texture, while BI has the scale and offset right next to the coordinate mapping setting.