Whilst it's not necessarily "bad" per se, the implications are, so this kind of canonicalisation issue needs to be taken care of using URL rewrites/permanent 301 redirects.
Typically, on a Windows-based server (without any URL rewriting), a 200 (OK) status code will be returned for each version regardless of the combination of upper/lower-case letters used - giving search engines duplicate content to index, and others duplicate content to link to. This naturally dilutes rankings and link equity across the two (or more) identical pages.
There is an excellent section on solving canonicalisation issues on Windows IIS servers in this SEOmoz article by Dave Sottimano.
On a Linux server (without any URL rewriting) you will usually get a 200 for the lower-case version, and a 404 (Not Found) for versions with upper-case characters. Whilst search engines wont index the 404, you are potentially wasting link equity passed to non-existent pages, and it can be really confusing for users, too.
There is a lot of info around the web about solving Linux canonicalisation issues (here is an article from YouMoz). If your site uses a CMS like Joomla or Wordpress, most of these issues are solved using the default .htaccess file, and completely eliminated when you combine this with a well chosen extension or two.
You can help the search engines figure out which version of a page you regard as the original by using the rel="canonical" meta tag in the html . This passes link equity and rankings from duplicate versions to the main, absolute version.