Internet service providers began running out of IP addresses to assign to companies as computer and device usage grew. This was because each company was assigned a single class C network with 254 IP addresses, but most companies only had 10 computers and were not using the full block. To address this issue, subnetting was developed to break up large class C networks into smaller subnets, allowing for more efficient allocation and use of available IP addresses.