It's kind of technical, but there's no "contact:" type defined. If they send you a link with the http: type or the mailto: type or the ftp: type (and you had an ftp app), it would probably work, because those types are defined. "contact:" isn't and it's not an Android thing, it's a computer industry thing. (Not that some programs don't implement it, just as some implement "irc:" or "chat" as a type, but they're not standards.)
And iPhones don't send SMSs, they send iMessages. If the person sending the the texts was knowledgeable enough to mark at least one text sent to you as SMS, his phone kind of fakes an SMS, but the faking isn't perfect, so some things still don't work. (Apple acknowledged this a few months ago, and even claimed that they were going to work on it, but I wouldn't hold a corpse's breath. Jobs' "everyone who doesn't do it my way is a moron" philosophy still reigns strong over there.)