Why is the quality range of fastq format so broad?
Initially, there were several quality encodings that used to follow different ranges of ASCII characters to denote the quality of read. The range that you mention is a union of all those encoding formats. Nowadays, the most common encoding is Phred+33 (used by Illumina, Sanger, Ion Torrent and other popular sequencers) which uses these characters: 

!"#$%&amp;'()*+,-./0123456789:;&lt;=&gt;?@ABCDEFGHI


Character I denotes a phred score of 40. Aligners, when they read fasta files, by default assign a score of 40 (I) to all positions. This might be one why reason you are seeing a lot of I.

Anyways, if your fastq follows the phred+33 format then 40 (I) is a pretty good score which denotes a good quality read. Or you could be aligning fasta files. It would be a bad score if your encoding is phred+64 which I guess, is not the case.

ADDITION

The file that you linked is a fastq file. This sequencing experiment has been done on 454 GS FLX Titanium machine. 454 machines use a different way of calculating quality scores compared to the traditional basecalling phred scores. From the manual:


  6.6 Phred-equivalent Base Quality Scores   
  
  Quality scores for individual called bases are determined by a method developed in
  collaboration with the Broad Institute (Genome Research,18(5): 763-70,
  2008), whereby the methodology described by Ewing and Green (Genome
  Research, 8: 186-194, 1998) for the creation of quality scores as part
  of the Phred basecalling algorithm is applied to generating quality
  scores for 454 Sequencing reads. The quality scores computed for each
  called base are written to the CWF and SFF files (and optionally to a file paralleling the basecall FASTA file). Briefly, the method
  compares the properties of each base’s flowgram signals against
  properties that have been found to correlate with accurate and/or
  error-prone signal information, using training sets of read data. A
  multivariate analysis of those properties determines the sets of
  property values that best describe “bins” of basecalls, then assigns
  the training set accuracy rates of the basecalls in each bin as a
  quality score using the following scale: 
  
  $$Q = -10\ \text{log}_{10}(\text{error rate})$$


Usually, you'll have two files for 454 experiments &mdash; one that holds the sequence and the other that holds the quality at each position. These files can be combined to generate a fastq. This file is encoded in the phred+33 (also called Sanger/Illumina 1.9) format which I mentioned above. Phred+33, I guess, is also the standard encoding format adopted by NCBI/ENA/DDBJ and all new sequencing runs are encoded in this format. If you do not know the encoding you can run fastqc on your fastq file and it reports the type of encoding.

In your case, I would denote a score of 40 (ASCII value - 33) which means an error rate of 10-4 i.e. the read is of good quality. 

The below graph is obtained by a fastqc run on your file. The bars denote quality statistics at each position. Note that the mean quality drops towards the end of the read. 



A fasta file does not indicate quality but when you map them to your target, the aligner (I know of Bowtie based ones) assigns a default score of 40 at each position, during the alignment (and in the output).