If the application is installed on a device that doesn't meet the specified API level, it will crash when executing code specific to a certain unsupported API level. However, specifying the minSdkVersion should prevent it from being installed at all on a device that doesn't meet this level.
However, using your "uses-sdk" definition above, it would also be possible for a device meeting the minimum SDK requirement to launch the app, but crash later on when you would use a method specific to the higher level of the target SDK (i.e. using a API level 17 method on a device which only meets the minimum requirement of level 11). If this were the case, you would have to use in-app checks or annotate methods using @TargetApi or a similar. However, seeing how you mention you receive crashes from Android versions below the minimum SDK level, something else seems to be amiss.
Not trying to be funny: but can you confirm that all versions of this application (that have been made available to the public) included the "uses-sdk"-declaration as described in your post ? It might be the case that an older version of the application has crashed and you're not reading the bug report for the newest available APK but a previous version...