To me, one of the most immersive games I can remember was Super Metroid, on the Super NES.
The factors that contributed to said immersion, in my opinion, where many, including sound and graphic design, but I think the major elements where, on one hand, the
open-world nature of the game, and, on the other, the
lack of "interruptions".
Regarding the former, I guess that exploration of any kind is an easy way to make someone immersed in something. Think of, for example, when you're reading a Wikipedia article, and then through clicking on links, you end up exploring all sorts of tangential topics until you realize a couple hours have gone by and you're browsing information on Zimbawe's GDP.
Regarding the later, by "interruptions" I mean out-of-game elements that break the illusion. The usual suspect on that regard is the UI, when intrusive elements take too much attention from the game world. A good example, I think, would be the Health/Mana globes in Diablo, so prominent, that a lot of time is spent watching them, instead of getting lost in the actual action.
Another easy example are all the "dings!" many games have, like damage scores, power up names, achievement announcements, etc... Things that remind you that you are playing a game.
I think 3d games have it a bit easier because it's easier to identify 3d movement with how we move in the real world, but that is also a weakness, because we can also more efficiently notice when something does not match our real world experience, so 3d games have a head-start, but can come crashing down even harder. Again, in my opinion.
To me there is also a subtle difference between immersion and engagement.
Hmmm, it's mostly semantics, but I'd agree that there's a distinction, if only because we do need a way to differentiate between a player losing herself in the
game world, and a player losing herself in the
interaction with the game.
Games like Tetris or Bejeweled are very engaging, and you can lose yourself in them until you realize the thing vibrating incessantly is not your phone but your hungry stomach, but at no point do you stop thinking of them as games. You never stop to wonder about where the line blocks come from, or if there is a way to harness the energy released by lightning gems.
Immersive games, on the other hand, make you think in terms of their setting. For example, you might look out a window and wonder about what is out there, even when you logically know that there's only a skybox and nothing else. Or you might interact with an NPC and start seeing them as people, wondering about their lives, rather than as automated quest generators.
This is really a complex subject that I love to think about.
My advice (and opinion) would be that, if you're looking to make an immersive game, focus on making an apparently complex world (it doesn't need to be actually complex, just feel like it is) and make sure to not obstruct the player's view with out-of-world information.
A simple example of how to avoid obstructions would be to avoid having name tags or health bars floating over every creature in the game, and maybe only show those when relevant.
A simple example of how to add apparent complexity (or depth) is to try and design environments as if someone actually lived there. Add doors that make sense, for example, rather than purely gameplay oriented designs, even if they are just decorations.