Why is my computer only running 50%?

The simplest form of the truth is that your CPU (assuming it is an Intel P4 HT) is actually being run 100%. The problem is in the way the Operating System is reporting the utilization to you.

If you want more information, the following is a more detailed explaination.

Intel added some logic to its CPUs so that they can manage running two threads at the same time. They do this by injecting thread #2's instructions between the gaps in thread #1's pipeline. Intel processors are notorious for having very long pipelines. Some CPU instructions take several clock cycles to perform. These cause gaps in the pipeline. Gaps essentially waste CPU cycles. So what Intel did is put SMT (Simultaneous Multi-Threading) on their chips to inject another thread's instructions into these gaps, thereby improving efficiency.

The problem is how do you get two threads to even run at the same time. The scheduler is in the operating system. On a true SMP system, the OS knows it has 2 or more processors and runs a thread on each processor. But HT processors are just a single CPU, so normally the OS will just run 1 thread at any given time. How do you take advantage of the HT technology? The Intel chip tricks the OS into thinking there are two CPUs. Thus, the OS attempts to schedule 2 threads at the same time on a single CPU. That's also why the Task Manager shows 2 CPUs. It's also why you see 50% utilization being reported when in fact it's really 100%.

HT improves the performance a little by squeezing in a few more instructions when normally there would be wasted CPU cycles. Of course, if there's nothing else to run, they're wasted anyway. Thus the best improvement you're likely to see with HT turned on is maybe 10% - 20%. On the flip side, HT can slow things down by "thrashing" the CPU and cache. Certain types of programs lend themselves to easily benefit from HT, while some take a performance hit. That's why you'll see some benchmarks run really well on HT and sometimes they run slow (relatively speaking).

The bottom line is that Intel put this SMT feature they call "HT" on their processors to push more through the CPUs in the same amount of time. Sadly this causes some Windows Operating Systems to report this single CPU as two and consequently report only 50% when the processor is actually 100% used.