What about Paul Bettany? His film career never actually hit the stratosphere like it was supposed to, but he's generally decent (even when he's in something crappy), he's super-blonde, he always seems to have a cigarette hanging out of his mouth, and he's got the right lanky build for the character. I think he'd make a great Constantine.
Well, or Daniel Craig. But that isn't going to happen in a network show.
He's not the right nationality, but I don't think Kevin McKidd would be a bad choice for Constantine either.
The makeup on Tennant would have to be pretty gritty. Don't get me wrong, he's a good fit for the role, and his voice alone would make him a really, really interesting Constantine. But I just don't see him as a guy who spends his days fighting demons and mucking about with magic. Constantine's a rough-looking guy who has been through a lot, and Tennant never has that kind of look. He's got the chops, but they'd definitely need to give him some makeup.