In my final year project, we are using a SIFT feature descriptor to classify and recognize objects, but I have never come across segmentation in the process of image classification/categorization.
Isn't this step necessary?
SIFT works on points in an image while segmentation is about dividing up the image into regions. So, no, segmentation is not necessary when using SIFT.
In segmentation you divide up the image into regions so classification can be done by extracting features from each region and see if you can recognize your object. A downside to this approach is that producing a good segmentation is a difficult problem. Many segmentation techniques are sensitive to various circumstances, such as lighting, contrast, colors etc. These difficult situations often result in regions that do not represent your objects very well.
In SIFT you focus on specific points (keypoints) in the image instead of entire regions. If you want to recognize an object in an image using SIFT, you extract keypoints from an image of your object and give each keypoint a description (keypoint descriptor) based on its local neighborhood. Then you check if similar keypoints exist in the image you want to analyze. By matching the keypoints between your object image and the image you want to analyze you can do object recognition without segmentation.