Even though we are developers, we make products for people, with people. So contact in larger companies might be delegated via project managers, but in case of the smaller ones (like the one i work at) i have direct contact with clients. I don't much like it, but i got used to it with time. It highly depends on the client, some turned out to be great wworking with them, some are quite nightmarish and the whole range between those two extremes.