I've tried to give an example of what you could use these for, I hope it helps. If not let me know and I'll try to explain further.
Categories - Let's say you're doing a product page with different types of shoes. You'll have a number of different entries, but you can use categories to divide these types of entries up. With categories set you can use your URL structure to also help you with filtering. Maybe you've got walking shoes, under $40, with special arch support. Your URL might look something like "http://shoesite.com/category/walking-shoes/under-40/arch-support". This way you can easily filter through the list of products with all of these categories and show them appropriately.
Status Groups - Status groups help you realize the state of an entry. For an e-commerce site think a product may go through stages such as Pending, Quoted, and Purchased. In ExpressionEngine you'd create a status group named Order Status, and add these three statuses. That way when someone is fulfilling an order they'd change the status so that everyone else is aware of the status of that order. Typically your entries will either be Open (meaning the entry is viewable to the outside world) or Closed (not viewable, but not deleted).
Relationships - Let's say that you're trying to feature one, or many of your shoes as a related product on another product page. You can use relationships to pull the data from these other entries and display it on another specific products page. You're able to filter what results you want relationships to return, which helps you get a little more granular in your options.