If I am reading your question correctly (you have two different versions of the same type in the final executable), what you ask for will lead to undefined behavior at runtime.
Say you have a struct named "foo", and it has two int members, and that is compiled into a separate object file by your fellow programmer. Then you take "foo", add an int member to it, and you compile it to another obj file. You now link the two obj files creating the executable.
You have two problems -- what is the sizeof(foo) during the running of the program? Is it equal to the smaller version or larger version of foo? Second, the linker more than likely reserved space for the smaller version -- what happens when the program attempts to access the int that you added to the larger version of foo? A memory "overread" or overwrite will occur.
You should coordinate your efforts with your fellow programmer(s). Do you use a source revision control system? If so, this is usually where these issues are ironed out.