Apart from the above there are at least three great reasons to build forts.
The first is that the AI is notoriously stupid and will spend a month to siege down a fort even though they might outnumber it by 10 to 1. This can give you heaps of time to get troops to the area to stop the enemy taking the primary holding in the area, which can be a HUGE help if that is your capital. Losing your capital to siege can yield dozens of hostages to the besieger so unless you want to spend hundreds of gold ransoming them never let it happen. Forts can help heaps here.
Second and related to the above, is that forts are relatively quick and cheap to build and can help lock down an area after you have conquered it. If you have had any war go on for any great length of time you will know that pretty soon every sieged and countersieged holding will start to look pretty dang depopulated. You leave a garrison of 30 troops, the enemy shows up and insta-sieges it leaving 20 troops then moves on so you move in and take it back, and so on and so on. Having a fort in the area slows this ping pong down just a tiny bit, again possibly enough to allow you get back and stop the siege or draw the besiegers away and give the holding time to build back up its garrison.
Finally, I like to think of forts as my own medieval Chain Home system of picket radar stations. Often if you have a big realm you will never even know that you are being raided, but if you put forts all over your border (especially on the coasts if you are facing Vikings) then you should get a notification on the pop up tab on the right showing the progress of the siege. As soon as you see any siege pop up simply pause the game and zoom in to find out where the enemy Ju-88s and He-111s (er Vikings or other tribal raiders) are coming from.
Tally Ho !