There are no circumstances where correctly written Fortran 95 code would not compile with a Fortran 2003 compiler. I regularly use the Intel compiler and IMPORT is [u:392e4000cf]never[/u:392e4000cf] needed.
IMPORT was added to Fortran 2003 to allow an interface block to import definitions from the surrounding environment.
With Fortran 95 you need to repeat the definition in the interface block, for example:
use mmm_mod ! definitions from a module
interface
subroutine xxx ! whatever
use mmm_mod ! repeat to get definitions from module for xxx scope
end subroutine xxx
subroutine yyy ! whatever
use mmm_mod ! repeat to get definitions from module for yyy scope
end subroutine yyy
end interface
With Fortran 2003 you can write this like:
use mmm_mod ! definitions from a module
interface
subroutine xxx ! whatever
import ! Import everything from surrounding scope
end subroutine xxx
subroutine yyy ! whatever
import ! Import everything from surrounding scope
end subroutine yyy
end interface
If the code is working in Silverfrost's FTN95 then perhaps this compiler imports by default (I haven't checked). This is therefore an extension to the Fortran 95 standard or a bug.
I would urge caution with just getting the compiler to ignore IMPORT as a user may think that the lack of an error message means IMPORT is implemented when it is not.
KennyT's example code also compiles with the Intel compiler when the IMPORT statement is commented out, so it isn't a good enough example to illustrate when IMPORT might be used.