module in file1.js is a different instance from that in file2.js.
file1.js 
module.exports.foo = function(obj) {
    module.exports.obj = obj; 
    return module;
}  
file2.js
console.log("running file2");
file1 = require("./file1");
var something = {a: "a"}; 
var moduleOfFile1 = file1.foo(something); //export "something" being a part of file2 
console.log("file1 module: " + moduleOfFile1.id);
console.log("file2 module: " + module.id);
console:
node file2.js
id returned are different
Update
alternatively, why not update file2.js to extend its module.exports
File2.js
// well, you may copy `extend` implementation if you 
// do not want to depend on `underscore.js`
var _ = require("underscore");     
file1 = require("./file1");  
_.extend(module.exports, file1);
var something = {a: "a"};  
// or do something else
_.extend(module.exports, {
    obj: something
});
File3.js
file2 = require("./file2.js");
console.log(file2.obj.a);