I think the DCIM directory is never in the internal storage (My HTC Legend does not even take photos without an SD card present). The Environment.DIRECTORY_DCIM variable is just the string "DCIM" ref .
The reason for storing images in / DCIM is compatibility with card readers (such as printers) that expect images to be available in / DCIM, so I don't think it makes sense to have it in internal memory.
(sd-card) :
File rootsd = Environment.getExternalStorageDirectory();
File dcim = new File(rootsd.getAbsolutePath() + "/DCIM");