Some things to check, roughly in order:
1) Verify that a valid and reasonable "max memory" value is set in SQL Server.
2) Verify that IFI is turned on in Windows to allow SQL to use it.
3) Check the disk latency. The query below will give you an overview by drive. In general, you want values around 15ms or less up to say 25ms. Anything over 30ms could noticeably slow SQL.
SELECT
LEFT(physical_name, 1) AS drive,
CAST(SUM(io_stall_read_ms) / (1.0 + SUM(num_of_reads)) AS NUMERIC(10,1)) AS avg_read_disk_latency_ms,
CAST(SUM(io_stall_write_ms) / (1.0 + SUM(num_of_writes) ) AS NUMERIC(10,1)) AS avg_write_disk_latency_ms,
CAST((SUM(io_stall)) / (1.0 + SUM(num_of_reads + num_of_writes)) AS NUMERIC(10,1)) AS 'avg_disk_latency_ms'
FROM sys.dm_io_virtual_file_stats(NULL, NULL) AS divfs
INNER JOIN sys.master_files AS mf ON
mf.database_id = divfs.database_id AND
mf.file_id = divfs.file_id
GROUP BY LEFT(physical_name, 1)
ORDER BY avg_disk_latency_ms DESC;
4) Check for any autogrow file growth setting/amount that is: (1) too small or (2) too large or (3) a %, such as 10%, rather than a fixed value, such as 20MB.
5) Use SQL's built-in, standard reports to list the "TOP 10" most IO queries, avg and total.
6) Check for log files with too many VLFs, correct them if found.
SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.