Question: I am using the PIC18F2550 and I wanted to know how much time takes between an event happens (e.g. ADIF)and the interrupt routine starts. In other words, how much time the "interrupt system" takes to change the MCU's state, saving all the registers and changing the Program Counter.

Answer: 
Some datasheets tell you the latency from event to interrupt execution explicitly, but this one doesn't seem to. Check the family reference manual; there might be more information in there.

In either case it's pretty quick. Basically the processor takes the next opportunity to execute a call to the interrupt location. The registers that get saved are written to special hardware for that purpose, so that happens overlapped. Basically, the processor has to wait until the start of the next instruction cycle, and there is probably one more to flush the pipeline, then execution resumes at the interrupt address.

If one or two instruction times really matter, then do some tests to see what the latency really is. Remember that events like ADIF are synchronous, so the jitter should be 0. With external asynchronous events there is necessarily one cycle of jitter since the instruction clock keeps running.

What are you doing such that one or two instructions of latency matter?
One good way to answer questions like this is to use MPLAB's simulator. If you enable the stopwatch you can see exactly how many CPU cycles, and how many microseconds everything takes:

![MPLAB stopwatch](https://i.stack.imgur.com/FrATn.jpg)