@configurator: It might actually be more of a written thing. Newspapers and such use it quite a bit. In speech, when you talk about what you have, you probably often use a bit of emphasis somewhere, so the contraction doesn't come into play very clearly.
–
Peter EisentrautSep 29 '10 at 10:53

This is definitely an American English/British English thing, as you can't do it in American English but you can in British English.

In American English, you can't contract "have" if you are using it as a plain (not a "helping" or "auxiliary") verb. "I've a dog" and "They've a great time" are not grammatical in American English.

There are a number of other restrictions on contractions of "have" besides the one you cite. For example, you can't use contracted "have" followed by "not": "I've not been there" is not grammatical in American English even though "I've been there" is—if you want to contract, you have to say "I haven't been there".

I think what you feel uncomfortable with is contraction of "have" as a main verb. When it's an auxiliary verb in, say, a perfect, contraction feels fine:

I've had a car before.

But contraction of main verb "have" meaning to own or possess feels weirder.

?And I've a car right now.

However, I have a feeling that people will contract main verb have in British English, but take that with a grain of salt. Americans faced with some kind of strange usage are far too willing to blame it on British English.

Again, as part of a larger construction, '... he's a pen that cost over 300 pounds' would be acceptable colloquially in the UK. These contractions wouldn't be used in sentence- or sentence-fragment-terminal position.
–
Edwin AshworthMay 29 at 9:01

Technically, there's nothing wrong with it, although Uncle Mikey is correct that it's rarely appropriate to use contractions in formal writing.

The only reason the second one seems strange is because most people would say "They're having a great time," I suppose because they're in the middle of having it. I have said, though, "I'd a great time..." I just happen to speak too quickly.:)

I also say "I've got..." rather than "I have." When I'm not speaking incorrectly, I generally just say "I've." So, it's not just a British thing.