I haven't specifically used the 18F2525, so I cannot offer you specific advice. However, on the 16F628 and 16F917 that I have used, this is how I do it(from memory)

Enable PORTB interrupt on change. Global interrupts <B>need not</B> be enabled. Then when you want the processor to sleep, just do this
Code:
@ sleep
@ nop
@ nop
Any change on Portb pins RB4 to RB7(depends on specific bits being set) would trigger an interrupt flag being set. This event causes the PIC to wake up from sleep even though the global interrupt is disabled. Just in case you need you interrupts to be enabled at that time, you have to ensure that the ISR will read PORTB and reset the Change Flag.

That's all there is to it

Jerson