There's 2 options for isometric. The most straightforward one is using the 2D map array as a reference, very fast this method, because it usually just involves checking array locations, nothing fancy.
The other option is using a collision mask, this would be almost a copy of each level object, with the collision areas specified (maybe with a special colour). This holds a lot of benefits, like much more accurate collision. Also, the rest of the image can be used to key other things, like deciding if the player is in front, or behind the object based on the colour of pixel their feet are standing on.
There are a few pixel perfect sprite collision examples around, there's even the Styx plugin, which would be very handy for an isometric game I think.
EDIT:
Just thinking, it would be best to have just a collision version of each level part, for example a wall would have a filled in tile on the ground rather than the whole wall. I'd also have a small isometric tile to act as a collision sprite for characters. Then rely on pixel perfect collision on the special collision sprite, but if the z depth of the level sprite is in front of the player, and there's a collision on the real sprite image, then the sprite image needs to be drawn after the player sprite (might involve simply adjusting the player Z depth value). Zdepth is something I think you should deal with first, get level objects drawing in a sensible order first I reckon (this z depth value can simply be the Y screen location of the sprites hot spot).