user1484: According to the schematics, the Arduino Due has two USB inputs:

Native
Programming

Why is this? And when would I use the different ports?

user11: Either port can be used for programming, but the native USB port lets you do other things:

It also enables the Due to emulate a USB mouse or keyboard to an attached computer. To
  use these features, see the Mouse and Keyboard library reference pages.
The Native USB port can also act as a USB host for connected
  peripherals such as mice, keyboards, and smartphones. To use these
  features, see the USBHost reference pages. http://arduino.cc/en/Main/arduinoBoardDue

So you can use the Due to interface with USB devices or connect it to your computer and have it act like a USB device.

1484: <p>According to the schematics, the Arduino Due has two USB inputs:</p>

<ol>
<li>Native</li>
<li>Programming</li>
</ol>

<p>Why is this? And when would I use the different ports?</p>
 11: <p>Either port can be used for programming, but the native USB port lets you do other things:</p>

<blockquote>
  <p>It also enables the Due to emulate a USB mouse or keyboard to an attached computer. To
  use these features, see the <a href="http://arduino.cc/en/Reference/MouseKeyboard">Mouse and Keyboard library reference pages</a>.</p>
  
  <p>The Native USB port can also act as a USB host for connected
  peripherals such as mice, keyboards, and smartphones. To use these
  features, see the <a href="http://arduino.cc/en/Reference/USBHost">USBHost reference pages</a>. <sub><a href="http://arduino.cc/en/Main/arduinoBoardDue">http://arduino.cc/en/Main/arduinoBoardDue</a></sub></p>
</blockquote>

<p>So you can use the Due to interface with USB devices or connect it to your computer and have it act like a USB device.</p>
