I just banged my head against the table for some 20 minutes looking at a totally weird bug in PHP, and then I realized there's octal. The <%(*&#> octal.  

In short, I padded some literals with zeros so the code would be aligned, I know, big mistake. Forgot about octals.

The question is, does anyone use octals for anything other than file permissions? (I personally prefer chmod ugo+rwx but I understand that if they have to be programmaticaly generated, it's useful to use octals.) But are they useful in any other situation?

According to Wikipedia, octals aren't as common as they used to be. As others have already mentioned, in the past, systems used to have a 12/24/36-bit word, which is more easily represented in octal than hexadecimal, but currently, the x86 and i64 architectures use a 16/32/64 bit word, which is more easily represented in hexadecimal and downright ugly in octal. 

Current uses, however, include:


"Real" real-world use: the Yuki people and in the native Mexican Pamean languages use octal counting because they count the spaces between their fingers (see here)
The Romans had an eight-day week (called Nundical cycle) prior to the introduction of the Julian calendar. Thus, counting in weeks and days is essentially octal.
Historically in the 1950's, one of the oldest debuggers, UT-3 for the TX-0 computer at MIT (an 18-bit system), could only be operated by using commands written in octal notation (see page 20 of Hackers, Heroes of the Computer Revolution).
The original ASCII encoding was often represented as 4-bits + 3-bits, i.e. a nibble (0-15) for one row and a single octal digit for the column, as this 1972 chart shows.
Representation of UTF8 numbers (any start byte is \3nn and any continuation byte \2nn)
Representation of file and other permissions in Unix-like systems (chmod), here's an online octal permission calculator
TAR files store some information in octal representation according to this.
Representation of IP addresses (rare, sometimes used by spammers to obscure addresses). Microsoft accepts octal IP numbers for Ping and FTP.
When fields are naturally divided into three or six bits, octal representation comes in handy then, see here.
From the same link, you find that the FAA uses octals in transponders and in the venerable Arinc 429 bus standard.
Integers, but also fractions on the Honeywell and other legacy systems were represented as octal. This PDF explains how to go from Honeywell octal fractions to decimal.
A whole lot of legacy (CDC machines, DEC PDP-8 etc), because they used multiples of 3 bits, like 6-bit or 12-bit word sizes
In 1971, octal numbers were proposed to replace the decimal system (Really? Really! see reference).
And finally, most trivially: you use it almost everyday when you write down the number 0 in some programming language that supports octals, as this user wrote.


Note that modern programming languages sometimes don't support octals anymore because of the lack of use-cases and the potential for bugs. C# is an example, as Eric Lippert wrote this in the TCPL 3rd and 4th edition:


  C# does not support octal literals, for two reasons. First, hardly
  anyone uses octal literals these days. Second, if C# supported octal
  in the standard "leading zero means octal" format, then it would be a
  potential source of errors. Consider this code:

    FlightNumber = 0541;

  
  Clearly this expression is intended as a decimal literal not an octal
  literal.


Related, and just for reference and curiosity, Code, The Hidden Language of Computer Hardware has an excellent easy-to-follow explanation on octal and other number systems on page 55 - 63.
