It's a problem with the scope of C functions and variables. Basically, each of the files you include, and the one containing the 'main()' function are compiled to separate object files then linked together to make the single hex file you need to program the IC. Because at the time the compiling takes place the addresses of the other modules and the functions in them hasn't yet been decided (the linker does that) it is impossible to put the addresses in the call instructions in the hex file. Instead, the compiler puts a temporary fake address is put in place which the linker then changes when it knows what the real one should be.
The reason why you can't get it to compile is that without some knowledge of what the function or variable is, the compiler can't tell if a single byte or two byte address or page selection is needed and whether it should reserve memory for passing values to and from the function. The fix is simple, you tell the compiler the function exists but is external to the module you are currently in. It's a little more complicated than can be explained here but if you look in the help file for the key word 'extern' it should explain how you tell the compiler to deal with functions and variables it can't find. It is exactly what is done when for example you use a built-in function from MikroC's libraries which you can use within your own code.
Brian.