C is not final so it can be subclassed and there can be a subclass of C which implements I.
The rules about compilation errors are defined in
Casting conversion (Java Language Specification). The same rules apply to instanceof operator.
[ May 02, 2006: Message edited by: Vlado Zajac ]