You would have to be more specific. What does "dismally low" mean? Are you seeing a lot of false positives? A lot of false negatives? Also, what kind of objects are you trying to detect?
One thing to keep in mind is when you do sliding-window object detection, you typically get multiple detections around the actual location of the object of interest. The usual way to deal with this issue is to merge the overlapping detections. For example, the Computer Vision System Toolbox for MATLAB provides selectStrongestBbox function for this.
Another possible issue could be the variation in aspect ratio of the objects of interest. Typically, when you train a cascade classifier all the positive images are resized to be the same "training size" (e.g. 32x32 pixels). Then, when you do sliding windows, the aspect ratio of your window is the same as that of the training size. This results in good detection accuracy only if the aspect ratio of your objects of interest stays roughly the same. For example, this works well for faces. This will not work as well for a class of objects with varying aspect ratios, such as a category that includes both regular cars and stretched limousines.
And, of course, don't forget that haar cascade detectors do not tolerate in-plane or out-of-plane rotation very well.