sketch\sketch_jun06b.ino.cpp.o (symbol from plugin): In function setup': (.text+0x0): multiple definition of initiat_timer'
sketch\safemode.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2.exe: error: ld returned 1 exit status
exit status 1
Nonsense. Your understanding is incorrect. See My Post #5 Here for a brief description of the correct way to partition a project into multiple .h / .cpp files.
Yes that is the way I do it professionally. I copied and pasted and was in a hurry but I'm glad you pointed that out. I suspect OP copied and pasted as well.
Actually, the philosophy of grouping the methods and data for associated functionality falls under the "cohesion" principal. In this case, this is implemented in C style programming. With C++ you would do the same but use a class to control access to the data. Usually with accessor functions.