Please read the interrupt chapter of the microcontroller datasheet,
maybe you can get a better idea...
An interrupt es an 'event' that happens inside the microcontroller, this 'event' is 'triggered' by internal or external means... (say a edge detected on an special input pin, or a timer overflow, or some communication event)
this 'events' can be enable or disable (all except a reset)
and when they are enabled properly, they will issue an 'interrupt' in the microcontroller...
so it will interrupt normal code execution, an 'call' an interrupt subroutine at an specific location (in case of a PIC18 there are two possibilities, normal/high priority at 0x0008 and low priority at 0x0018)
[don't forget it's an special case of an automatic 'call' so it will preserve some info to 'return' (like the program counter to return to)]
of course inside your 'main program' you can enable or disable the interrupts at will, but hardly you can test a condition for an interrupt BEFORE executing the interrupt itself! the common workaround is to go inside the interrupt and the first thing is check the condition.. if false exit inmediatly the interrupt without further execution... if true do the tasks you planned to.
Also, don't forget the external interrupts (like an edge detect on an input pin) mostly CAN'T BE ENABLED FOR ANY PIN (at least in most PIC18 ) sadly i don't have the specific datasheet for your pic, and most pic18 have the external interrupt on pins RB0,RB1 and/or RB2, so please re-check that you can have an edge detect interrupt in your RC0 pin...
now... maybe you can describe further your complete system (not necesarly a flow-chart, maybe a state-machine or graphset) including: the normal execution (what is your program doing), the interrupt procedure (what will interrupt and what it wil do).
Also remember, if you wait, iddle for an interrupt... mmm it's not an proper use for an interrupt... it's better to make a simple call to a procedure...